diff options
author | greg@kroah.com <greg@kroah.com> | 2004-02-02 08:19:41 -0800 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-04-26 21:13:20 -0700 |
commit | 95a6f4c8acafe7031087667aa556a50a6a091c93 (patch) | |
tree | 8f7775e25d9315f20c0cc44cac362976e96627d2 | |
parent | 3a7798f4714c88021b6ac0cda3e1d818a3fa7a07 (diff) |
[PATCH] rework the logging code so that each program logs with the proper name in the syslog.
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | libsysfs/sysfs.h | 6 | ||||
-rw-r--r-- | logging.h | 28 | ||||
-rw-r--r-- | udev.c | 2 | ||||
-rw-r--r-- | udevd.c | 3 | ||||
-rw-r--r-- | udevinfo.c | 3 | ||||
-rw-r--r-- | udevsend.c | 3 |
7 files changed, 40 insertions, 16 deletions
@@ -195,7 +195,6 @@ OBJS = udev_config.o \ udev-add.o \ udev-remove.o \ udevdb.o \ - logging.o \ namedev.o \ namedev_parse.o \ $(SYSFS) \ @@ -254,15 +253,15 @@ $(ROOT): udev.o $(OBJS) $(HEADERS) $(GEN_HEADERS) $(STRIPCMD) $@ $(HELPER): udevinfo.o $(OBJS) $(HEADERS) - $(LD) $(LDFLAGS) -o $@ $(CRT0) udevinfo.o logging.o udev_config.o udevdb.o $(SYSFS) $(TDB) $(LIB_OBJS) $(ARCH_LIB_OBJS) + $(LD) $(LDFLAGS) -o $@ $(CRT0) udevinfo.o udev_config.o udevdb.o $(SYSFS) $(TDB) $(LIB_OBJS) $(ARCH_LIB_OBJS) $(STRIPCMD) $@ -$(DAEMON): udevd.h udevd.o udevd.o logging.o - $(LD) $(LDFLAGS) -lpthread -o $@ $(CRT0) udevd.o logging.o $(LIB_OBJS) $(ARCH_LIB_OBJS) +$(DAEMON): udevd.h udevd.o + $(LD) $(LDFLAGS) -lpthread -o $@ $(CRT0) udevd.o $(LIB_OBJS) $(ARCH_LIB_OBJS) $(STRIPCMD) $@ -$(SENDER): udevd.h udevsend.o udevd.o logging.o - $(LD) $(LDFLAGS) -o $@ $(CRT0) udevsend.o logging.o $(LIB_OBJS) $(ARCH_LIB_OBJS) +$(SENDER): udevd.h udevsend.o + $(LD) $(LDFLAGS) -o $@ $(CRT0) udevsend.o $(LIB_OBJS) $(ARCH_LIB_OBJS) $(STRIPCMD) $@ clean: diff --git a/libsysfs/sysfs.h b/libsysfs/sysfs.h index 4ea4919351..49c9285bc3 100644 --- a/libsysfs/sysfs.h +++ b/libsysfs/sysfs.h @@ -34,7 +34,7 @@ /* Debugging */ #ifdef DEBUG -#include <syslog.h> +#include "../logging.h" #define dprintf(format, arg...) \ do { \ log_message (LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg); \ @@ -43,8 +43,4 @@ #define dprintf(format, arg...) do { } while (0) #endif -extern int log_message (int level, const char *format, ...) - __attribute__ ((format (printf, 2, 3))); - - #endif /* _SYSFS_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 <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 @@ -29,6 +29,7 @@ #define dbg_parse(format, arg...) do { } while (0) #ifdef LOG +#include <stdarg.h> #include <syslog.h> #undef info @@ -54,9 +55,26 @@ } while (0) #endif -#endif /* LOG */ - -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]; + +static inline void init_logging(char *program_name) +{ + snprintf(logname, 42,"%s[%d]", program_name, getpid()); + openlog(logname, 0, LOG_DAEMON); +} + +#endif /* LOG */ #endif @@ -38,6 +38,7 @@ /* global variables */ char **main_argv; char **main_envp; +unsigned char logname[42]; static void sig_handler(int signum) { @@ -174,6 +175,7 @@ int main(int argc, char **argv, char **envp) main_argv = argv; main_envp = envp; + init_logging("udev"); dbg("version %s", UDEV_VERSION); return udev_hotplug(argc, argv); @@ -42,6 +42,7 @@ #include "logging.h" +unsigned char logname[42]; static pthread_mutex_t msg_lock; static pthread_mutex_t msg_active_lock; static pthread_cond_t msg_active; @@ -354,6 +355,8 @@ int main(int argc, char *argv[]) pthread_t mgr_exec_tid; int retval; + init_logging("udevd"); + /* only let one version of the daemon run at any one time */ if (one_and_only() != 0) exit(0); diff --git a/udevinfo.c b/udevinfo.c index 4d28755b2f..71a9a6d93e 100644 --- a/udevinfo.c +++ b/udevinfo.c @@ -38,6 +38,7 @@ char **main_argv; int main_argc; +unsigned char logname[42]; static int print_all_attributes(const char *path) { @@ -412,6 +413,8 @@ int main(int argc, char *argv[], char *envp[]) main_argv = argv; main_argc = argc; + init_logging("udevinfo"); + /* initialize our configuration */ udev_init_config(); diff --git a/udevsend.c b/udevsend.c index 0ddc6839de..6af9df7704 100644 --- a/udevsend.c +++ b/udevsend.c @@ -40,6 +40,7 @@ #include "udevd.h" #include "logging.h" +unsigned char logname[42]; static inline char *get_action(void) { @@ -126,6 +127,8 @@ int main(int argc, char* argv[]) int sock; struct sockaddr_un saddr; + init_logging("udevsend"); + subsystem = argv[1]; if (subsystem == NULL) { dbg("no subsystem"); |