log: print at to one target at max

This commit is contained in:
Lennart Poettering 2010-08-17 03:31:45 +02:00
parent 8630d37023
commit 9499b235b9
1 changed files with 10 additions and 8 deletions

View File

@ -331,7 +331,7 @@ static int log_dispatch(
do { do {
char *e; char *e;
int k; int k = 0;
buffer += strspn(buffer, NEWLINE); buffer += strspn(buffer, NEWLINE);
@ -344,24 +344,26 @@ static int log_dispatch(
if (log_target == LOG_TARGET_SYSLOG_OR_KMSG || if (log_target == LOG_TARGET_SYSLOG_OR_KMSG ||
log_target == LOG_TARGET_SYSLOG) { log_target == LOG_TARGET_SYSLOG) {
if ((r = write_to_syslog(level, file, line, func, buffer)) < 0) { if ((k = write_to_syslog(level, file, line, func, buffer)) < 0) {
log_close_syslog(); log_close_syslog();
log_open_kmsg(); log_open_kmsg();
} else if (r > 0) } else if (k > 0)
r++; r++;
} }
if (log_target == LOG_TARGET_SYSLOG_OR_KMSG || if (k <= 0 &&
log_target == LOG_TARGET_KMSG) { (log_target == LOG_TARGET_SYSLOG_OR_KMSG ||
log_target == LOG_TARGET_KMSG)) {
if ((r = write_to_kmsg(level, file, line, func, buffer)) < 0) { if ((k = write_to_kmsg(level, file, line, func, buffer)) < 0) {
log_close_kmsg(); log_close_kmsg();
log_open_console(); log_open_console();
} else if (r > 0) } else if (k > 0)
r++; r++;
} }
if ((k = write_to_console(level, file, line, func, buffer)) < 0) if (k <= 0 &&
(k = write_to_console(level, file, line, func, buffer)) < 0)
return k; return k;
buffer = e; buffer = e;