chiark / gitweb /
[PATCH] make udevsend binary even smaller
[elogind.git] / logging.h
index 85016ad3284675a31232ef2768648541e8d39d5b..3ee3e1acf05967a03540dbe07ca5e9089e29c0ce 100644 (file)
--- a/logging.h
+++ b/logging.h
@@ -1,9 +1,9 @@
 /*
- * udev.h
+ * logging.h
  *
- * Userspace devfs
+ * Simple logging functions that can be compiled away into nothing.
  *
- * Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
+ * Copyright (C) 2003,2004 Greg Kroah-Hartman <greg@kroah.com>
  * Copyright (C) 2004 Kay Sievers <kay.sievers@vrfy.org>
  *
  *     This program is free software; you can redistribute it and/or modify it
 #ifndef LOGGING_H
 #define 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 <syslog.h>
+
+#undef info
 #define info(format, arg...)                                                           \
        do {                                                                            \
-               log_message (LOG_INFO , format , ## arg);       \
+               log_message (LOG_INFO , format , ## arg);                               \
        } while (0)
-#else
-       #define info(format, arg...) do { } while (0)
-#endif
 
 #ifdef DEBUG
+#undef dbg
 #define dbg(format, arg...)                                                            \
        do {                                                                            \
                log_message (LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg);        \
        } while (0)
-#else
-       #define dbg(format, arg...) do { } while (0)
 #endif
 
 /* Parser needs it's own debugging statement, we usually don't care about this at all */
 #ifdef DEBUG_PARSER
+#undef dbg_parse
 #define dbg_parse(format, arg...)                                                      \
        do {                                                                            \
                log_message (LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg);        \
        } while (0)
-#else
-       #define dbg_parse(format, arg...) do { } while (0)
 #endif
 
-
-extern int log_message (int level, const char *format, ...)
+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;
+
+       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());
+       openlog(logname, 0, LOG_DAEMON);
+}
+
+#endif /* LOG */
 
 #endif