X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flog.c;h=5c5b734f2f83c96a9bf7cb18cfdf89e630dbea0e;hb=75d3fc60f88e08bf953063819a8a04b881d6db23;hp=4ec6b73888279217f1dd316b12965863753cc55f;hpb=29db583471f019ed9939a90966b3e194a9560e7e;p=elogind.git diff --git a/src/log.c b/src/log.c index 4ec6b7388..5c5b734f2 100644 --- a/src/log.c +++ b/src/log.c @@ -231,6 +231,16 @@ void log_set_target(LogTarget target) { log_target = target; } +void log_close(void) { + log_close_console(); + log_close_kmsg(); + log_close_syslog(); +} + +void log_forget_fds(void) { + console_fd = kmsg_fd = syslog_fd = -1; +} + void log_set_max_level(int level) { assert((level & LOG_PRIMASK) == level); @@ -238,11 +248,11 @@ void log_set_max_level(int level) { } static int write_to_console( - int level, - const char*file, - int line, - const char *func, - const char *buffer) { + int level, + const char*file, + int line, + const char *func, + const char *buffer) { char location[64]; struct iovec iovec[5]; @@ -378,8 +388,8 @@ static int log_dispatch( return 0; /* Patch in LOG_DAEMON facility if necessary */ - if (LOG_FAC(level) == 0) - level = LOG_MAKEPRI(LOG_DAEMON, LOG_PRI(level)); + if ((level & LOG_FACMASK) == 0) + level = LOG_DAEMON | LOG_PRI(level); do { char *e;