svlogd: log full lines to stderr too, and also stop using stdio for that

This commit is contained in:
Denis Vlasenko 2006-11-19 17:33:54 +00:00
parent 22dcd04f8f
commit 83edaf3fd6

View File

@ -830,12 +830,8 @@ int svlogd_main(int argc, char **argv)
if (ld->fddir == -1) continue;
if (ld->inst)
logmatch(ld);
if (ld->matcherr == 'e') {
fprintf(stderr, "%.*s%s",
printlen, line,
(ch != '\n') ? "...\n" : ""
);
}
if (ld->matcherr == 'e')
full_write(2, line, printlen);
if (ld->match != '+') continue;
buffer_pwrite(i, line, printlen);
}
@ -859,6 +855,8 @@ int svlogd_main(int argc, char **argv)
/* linelen == no of chars incl. '\n' (or == stdin_cnt) */
for (i = 0; i < dirn; ++i) {
if (dir[i].fddir == -1) continue;
if (dir[i].matcherr == 'e')
full_write(2, lineptr, linelen);
if (dir[i].match != '+') continue;
buffer_pwrite(i, lineptr, linelen);
}