summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-02-27 14:33:50 +0100
committerLennart Poettering <lennart@poettering.net>2013-02-27 14:33:50 +0100
commit4e7bc3f339a8f08b788ccccee4038f59f29c4429 (patch)
treea73da305745b7a6fcbc7b0ddd7b338bd642297dd
parentc06bf414042cd1bf94e0af63e9e2a0c291bfc546 (diff)
Revert "log: fix fallbacks to kmsg"
This reverts commit 4a01181e460686d8b4a543b1dfa7f77c9e3c5ab8. This patch broke LOG_TARGET_AUTO, i.e. automatic selection of STDERR if it is a TTY with a fallback on the journal and kmsg otherwise. The general rule should probably be: log_open() -- open the "best" possible logging channel according to log_target configuration. log_dispatch() -- don't open any log channels ever, with the exception of kmsg since that has no drawbacks. And do this only on true errors of the better log channel, not just when it wasn't opened.
-rw-r--r--src/shared/log.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/shared/log.c b/src/shared/log.c
index ff2dd45350..293c261f9e 100644
--- a/src/shared/log.c
+++ b/src/shared/log.c
@@ -541,11 +541,11 @@ static int log_dispatch(
k = write_to_journal(level, file, line, func,
object_name, object, buffer);
- if (k <= 0) {
- if (k < 0 && k != -EAGAIN)
+ if (k < 0) {
+ if (k != -EAGAIN)
log_close_journal();
log_open_kmsg();
- } else
+ } else if (k > 0)
r++;
}
@@ -554,11 +554,11 @@ static int log_dispatch(
k = write_to_syslog(level, file, line, func,
object_name, object, buffer);
- if (k <= 0) {
- if (k < 0 && k != -EAGAIN)
+ if (k < 0) {
+ if (k != -EAGAIN)
log_close_syslog();
log_open_kmsg();
- } else
+ } else if (k > 0)
r++;
}
@@ -571,11 +571,10 @@ static int log_dispatch(
k = write_to_kmsg(level, file, line, func,
object_name, object, buffer);
- if (k <= 0) {
- if (k < 0 && k != -EAGAIN)
- log_close_kmsg();
+ if (k < 0) {
+ log_close_kmsg();
log_open_console();
- } else
+ } else if (k > 0)
r++;
}