diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2006-01-15 16:42:37 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2006-01-15 16:42:37 +0100 |
commit | 29501203f7b6818258d438d8826ac02c60e08494 (patch) | |
tree | b475981275e4016426cd89bd456b59234d1f45a2 | |
parent | a321947e4713535af2cb1944bb7d6bc1688b6e50 (diff) | |
download | vdr-29501203f7b6818258d438d8826ac02c60e08494.tar.gz vdr-29501203f7b6818258d438d8826ac02c60e08494.tar.bz2 |
Modified logging so that even on NPTL systems each line in the log file shows the individual thread's pid
-rw-r--r-- | CONTRIBUTORS | 4 | ||||
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | tools.c | 15 | ||||
-rw-r--r-- | tools.h | 10 | ||||
-rw-r--r-- | vdr.c | 4 |
5 files changed, 28 insertions, 7 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 4f5769c9..2c1949e0 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1659,3 +1659,7 @@ Jürgen Schilling <juergen_schilling@web.de> Jesus Bravo Alvarez <jba@pobox.com> for reporting a second place where a message should be given when an instant recording is started + +Francois-Xavier Kowalski <francois-xavier.kowalski@hp.com> + for suggesting how to modify logging so that even on NPTL systems each line in + the log file shows the individual thread's pid @@ -4194,3 +4194,5 @@ Video Disk Recorder Revision History - Fixed a second place where a message should be given when an instant recording is started (reported by Jesus Bravo Alvarez). +- Modified logging so that even on NPTL systems each line in the log file shows + the individual thread's pid (based on a suggestion from Francois-Xavier Kowalski). @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.c 1.110 2006/01/15 14:31:45 kls Exp $ + * $Id: tools.c 1.111 2006/01/15 16:42:37 kls Exp $ */ #include "tools.h" @@ -26,9 +26,22 @@ extern "C" { #include <unistd.h> #include <utime.h> #include "i18n.h" +#include "thread.h" int SysLogLevel = 3; +#define MAXSYSLOGBUF 256 + +void syslog_with_tid(int priority, const char *format, ...) +{ + va_list ap; + char fmt[MAXSYSLOGBUF]; + snprintf(fmt, sizeof(fmt), "[%d] %s", cThread::ThreadId(), format); + va_start(ap, format); + vsyslog(priority, fmt, ap); + va_end(ap); +} + int BCD2INT(int x) { return ((1000000 * BCDCHARTOINT((x >> 24) & 0xFF)) + @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.h 1.89 2006/01/08 11:40:37 kls Exp $ + * $Id: tools.h 1.90 2006/01/15 16:19:56 kls Exp $ */ #ifndef __TOOLS_H @@ -26,9 +26,9 @@ typedef unsigned long long int uint64; extern int SysLogLevel; -#define esyslog(a...) void( (SysLogLevel > 0) ? syslog(LOG_ERR, a) : void() ) -#define isyslog(a...) void( (SysLogLevel > 1) ? syslog(LOG_INFO, a) : void() ) -#define dsyslog(a...) void( (SysLogLevel > 2) ? syslog(LOG_DEBUG, a) : void() ) +#define esyslog(a...) void( (SysLogLevel > 0) ? syslog_with_tid(LOG_ERR, a) : void() ) +#define isyslog(a...) void( (SysLogLevel > 1) ? syslog_with_tid(LOG_INFO, a) : void() ) +#define dsyslog(a...) void( (SysLogLevel > 2) ? syslog_with_tid(LOG_DEBUG, a) : void() ) #define LOG_ERROR esyslog("ERROR (%s,%d): %m", __FILE__, __LINE__) #define LOG_ERROR_STR(s) esyslog("ERROR: %s: %m", s) @@ -52,6 +52,8 @@ template<class T> inline int sgn(T a) { return a < 0 ? -1 : a > 0 ? 1 : 0; } template<class T> inline void swap(T &a, T &b) { T t = a; a = b; b = t; } #endif +void syslog_with_tid(int priority, const char *format, ...); + #define BCDCHARTOINT(x) (10 * ((x & 0xF0) >> 4) + (x & 0xF)) int BCD2INT(int x); @@ -22,7 +22,7 @@ * * The project's page is at http://www.cadsoft.de/vdr * - * $Id: vdr.c 1.239 2006/01/15 16:01:32 kls Exp $ + * $Id: vdr.c 1.240 2006/01/15 16:23:21 kls Exp $ */ #include <getopt.h> @@ -447,7 +447,7 @@ int main(int argc, char *argv[]) // Log file: if (SysLogLevel > 0) - openlog("vdr", LOG_PID | LOG_CONS, SysLogTarget); + openlog("vdr", LOG_CONS, SysLogTarget); // LOG_PID doesn't work as expected under NPTL // Check the video directory: |