chiark / gitweb /
update TODO
[elogind.git] / src / log.c
index 4ec6b73888279217f1dd316b12965863753cc55f..b8ce122f3d338bead2af6c904899f4fa9568fcad 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -231,6 +231,12 @@ void log_set_target(LogTarget target) {
         log_target = target;
 }
 
+void log_close(void) {
+        log_close_console();
+        log_close_kmsg();
+        log_close_syslog();
+}
+
 void log_set_max_level(int level) {
         assert((level & LOG_PRIMASK) == level);
 
@@ -238,11 +244,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 +384,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;