#ifdef LOG
#include <stdarg.h>
+#include <unistd.h>
#include <syslog.h>
+#define LOGNAME_SIZE 42
+
#undef info
#define info(format, arg...) \
do { \
- log_message (LOG_INFO , format , ## arg); \
+ log_message(LOG_INFO , format , ## arg); \
} while (0)
#ifdef DEBUG
#undef dbg
#define dbg(format, arg...) \
do { \
- log_message (LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg); \
+ log_message(LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg); \
} while (0)
#endif
#undef dbg_parse
#define dbg_parse(format, arg...) \
do { \
- log_message (LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg); \
+ log_message(LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg); \
} while (0)
#endif
-static void log_message (int level, const char *format, ...)
+extern 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];
+/* each program that uses syslog must declare this variable somewhere */
+extern unsigned char logname[LOGNAME_SIZE];
#undef init_logging
static inline void init_logging(char *program_name)
{
- snprintf(logname, 42,"%s[%d]", program_name, getpid());
+ snprintf(logname, LOGNAME_SIZE,"%s[%d]", program_name, getpid());
openlog(logname, 0, LOG_DAEMON);
}