chiark / gitweb /
[PATCH] stop using mode_t as different libcs define it in different ways :(
[elogind.git] / logging.h
index e233ddc88972b59ff6906fc4eded9a069bb02f65..df0d7dedcea1ceb1b72ccd9a74341de84815913e 100644 (file)
--- a/logging.h
+++ b/logging.h
 #define info(format, arg...)           do { } while (0)
 #define dbg(format, arg...)            do { } while (0)
 #define dbg_parse(format, arg...)      do { } while (0)
+#define init_logging(foo)              do { } while (0)
 
 #ifdef LOG
 #include <stdarg.h>
+#include <unistd.h>
 #include <syslog.h>
 
 #undef info
        } while (0)
 #endif
 
+/* each program must declare this variable and function somewhere */
+extern unsigned char logname[42];
+extern int log_ok(void);
+
 static void log_message (int level, const char *format, ...)
        __attribute__ ((format (printf, 2, 3)));
 static inline void log_message (int level, const char *format, ...)
 {
        va_list args;
 
+       if (!log_ok())
+               return;
+
        va_start(args, format);
        vsyslog(level, format, args);
        va_end(args);
 }
 
-/* each program must declare this variable somewhere */
-extern unsigned char logname[42];
-
+#undef init_logging
 static inline void init_logging(char *program_name)
 {
        snprintf(logname, 42,"%s[%d]", program_name, getpid());