diff options
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | src/journal/journald.c | 1 | ||||
-rw-r--r-- | src/log.c | 9 | ||||
-rw-r--r-- | src/log.h | 1 | ||||
-rw-r--r-- | src/login/logind.c | 1 |
5 files changed, 11 insertions, 3 deletions
@@ -30,8 +30,6 @@ Features: * dbus upstream still refers to dbus.target and shouldn't -* ensure that logind sets the syslog facility to AUTH when logging - * when a service has the same env var set twice we actually store it twice and return that in systemctl show -p... We should only show the last setting * add man page documenting all kernel cmdline options, including stuff like fsck.mode= diff --git a/src/journal/journald.c b/src/journal/journald.c index f341b8742b..555d74f049 100644 --- a/src/journal/journald.c +++ b/src/journal/journald.c @@ -2765,6 +2765,7 @@ int main(int argc, char *argv[]) { } log_set_target(LOG_TARGET_CONSOLE); + log_set_facility(LOG_SYSLOG); log_parse_environment(); log_open(); @@ -37,6 +37,7 @@ static LogTarget log_target = LOG_TARGET_CONSOLE; static int log_max_level = LOG_INFO; +static int log_facility = LOG_DAEMON; static int console_fd = STDERR_FILENO; static int syslog_fd = -1; @@ -310,6 +311,10 @@ void log_set_max_level(int level) { log_max_level = level; } +void log_set_facility(int facility) { + log_facility = facility; +} + static int write_to_console( int level, const char*file, @@ -457,11 +462,13 @@ static int write_to_journal( snprintf(header, sizeof(header), "PRIORITY=%i\n" + "SYSLOG_FACILITY=%i\n" "CODE_FILE=%s\n" "CODE_LINE=%i\n" "CODE_FUNCTION=%s\n" "MESSAGE=", LOG_PRI(level), + LOG_FAC(level), file, line, func); @@ -497,7 +504,7 @@ static int log_dispatch( /* Patch in LOG_DAEMON facility if necessary */ if ((level & LOG_FACMASK) == 0) - level = LOG_DAEMON | LOG_PRI(level); + level = log_facility | LOG_PRI(level); do { char *e; @@ -43,6 +43,7 @@ typedef enum LogTarget{ void log_set_target(LogTarget target); void log_set_max_level(int level); +void log_set_facility(int facility); int log_set_target_from_string(const char *e); int log_set_max_level_from_string(const char *e); diff --git a/src/login/logind.c b/src/login/logind.c index 777d91252a..a54195cebb 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -1240,6 +1240,7 @@ int main(int argc, char *argv[]) { int r; log_set_target(LOG_TARGET_AUTO); + log_set_facility(LOG_AUTH); log_parse_environment(); log_open(); |