X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=logging.h;h=df0d7dedcea1ceb1b72ccd9a74341de84815913e;hb=1b9410278e40850bdcedb2fdfc0f815361b1c303;hp=2d09b9a088c115452899770bcab525eb01bff598;hpb=f10fec8197d9cc794f7f87cf9b14daaf414974d4;p=elogind.git diff --git a/logging.h b/logging.h index 2d09b9a08..df0d7dedc 100644 --- a/logging.h +++ b/logging.h @@ -1,9 +1,9 @@ /* * logging.h * - * Userspace devfs + * Simple logging functions that can be compiled away into nothing. * - * Copyright (C) 2003 Greg Kroah-Hartman + * Copyright (C) 2003,2004 Greg Kroah-Hartman * Copyright (C) 2004 Kay Sievers * * This program is free software; you can redistribute it and/or modify it @@ -27,14 +27,17 @@ #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 +#include #include #undef info #define info(format, arg...) \ do { \ - log_message (LOG_INFO , format , ## arg); \ + log_message (LOG_INFO , format , ## arg); \ } while (0) #ifdef DEBUG @@ -54,9 +57,31 @@ } while (0) #endif -#endif /* LOG */ +/* each program must declare this variable and function somewhere */ +extern unsigned char logname[42]; +extern int log_ok(void); -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; + + if (!log_ok()) + return; + + va_start(args, format); + vsyslog(level, format, args); + va_end(args); +} + +#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