From c24dfb7f437bf31d1c70458e9f7e361b8f8f682f Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 24 Nov 2002 15:56:24 +0100 Subject: [PATCH] Extended the '-l' option to allow logging to LOG_LOCALn --- CONTRIBUTORS | 1 + HISTORY | 2 ++ tools.c | 4 +++- vdr.1 | 4 +++- vdr.c | 40 +++++++++++++++++++++++++++++----------- 5 files changed, 38 insertions(+), 13 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index acef699d..83af710c 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -276,6 +276,7 @@ Hannu Savolainen Jürgen Schmidt for fixing a problem with 'in_addr_t' on systems with glibc < 2.2. + for suggesting to optionally allow logging to LOG_LOCALn (n=0..7) Uwe Freese for suggesting to automatically close an empty recordings page after deleting diff --git a/HISTORY b/HISTORY index 787218c4..c3eb6a8e 100644 --- a/HISTORY +++ b/HISTORY @@ -1806,3 +1806,5 @@ Video Disk Recorder Revision History - Updated 'channels.conf.cable' and made some channels unique using the new RID (thanks to Andreas Kool for pointing out the problems). - Made some channels unique in 'channels.conf.terr' using the new RID. +- Extended the '-l' option to allow logging to LOG_LOCALn (n=0..7) by writing, for + instance, '-l 3.7' (suggested by Jürgen Schmidt). diff --git a/tools.c b/tools.c index 68bfb7e4..a6bc80b1 100644 --- a/tools.c +++ b/tools.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.c 1.73 2002/11/09 15:33:47 kls Exp $ + * $Id: tools.c 1.74 2002/11/24 15:47:02 kls Exp $ */ #include "tools.h" @@ -235,6 +235,8 @@ void delay_ms(int ms) bool isnumber(const char *s) { + if (!*s) + return false; while (*s) { if (!isdigit(*s)) return false; diff --git a/vdr.1 b/vdr.1 index 06c0b84d..79f48ccd 100644 --- a/vdr.1 +++ b/vdr.1 @@ -8,7 +8,7 @@ .\" License as specified in the file COPYING that comes with the .\" vdr distribution. .\" -.\" $Id: vdr.1 1.4 2002/05/09 16:04:17 kls Exp $ +.\" $Id: vdr.1 1.5 2002/11/24 15:52:00 kls Exp $ .\" .TH vdr 1 "9 May 2002" "1.1.0" "Video Disk Recorder" .SH NAME @@ -67,6 +67,8 @@ Set logging to \fIlevel\fR. \fB0\fR\ =\ no logging, \fB1\fR\ =\ errors only, \fB2\fR\ =\ errors and info, \fB3\fR\ =\ errors, info and debug. The default logging level is \fB3\fR. +If logging should be done to LOG_LOCALn instead of +LOG_USER, add '.n' to LEVEL, as in 3.7 (n=0..7). .TP .BI -L\ dir ,\ --lib= dir Search for plugins in directory \fIdir\fR (default is ./PLUGINS/lib). diff --git a/vdr.c b/vdr.c index fbe97adc..d27f302b 100644 --- a/vdr.c +++ b/vdr.c @@ -22,7 +22,7 @@ * * The project's page is at http://www.cadsoft.de/people/kls/vdr * - * $Id: vdr.c 1.133 2002/11/24 10:32:40 kls Exp $ + * $Id: vdr.c 1.134 2002/11/24 15:50:16 kls Exp $ */ #include @@ -93,6 +93,7 @@ int main(int argc, char *argv[]) bool DisplayHelp = false; bool DisplayVersion = false; bool DaemonMode = false; + int SysLogTarget = LOG_USER; bool MuteAudio = false; int WatchdogTimeout = DEFAULTWATCHDOG; const char *Terminal = NULL; @@ -142,15 +143,31 @@ int main(int argc, char *argv[]) break; case 'h': DisplayHelp = true; break; - case 'l': if (isnumber(optarg)) { - int l = atoi(optarg); - if (0 <= l && l <= 3) { - SysLogLevel = l; - break; - } - } + case 'l': { + char *p = strchr(optarg, '.'); + if (p) + *p = 0; + if (isnumber(optarg)) { + int l = atoi(optarg); + if (0 <= l && l <= 3) { + SysLogLevel = l; + if (!p) + break; + if (isnumber(p + 1)) { + int l = atoi(optarg); + if (0 <= l && l <= 7) { + int targets[] = { LOG_LOCAL0, LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4, LOG_LOCAL5, LOG_LOCAL6, LOG_LOCAL7 }; + SysLogTarget = targets[l]; + break; + } + } + } + } + if (p) + *p = '.'; fprintf(stderr, "vdr: invalid log level: %s\n", optarg); return 2; + } break; case 'L': if (access(optarg, R_OK | X_OK) == 0) PluginManager.SetDirectory(optarg); @@ -182,8 +199,7 @@ int main(int argc, char *argv[]) while (optarg && *optarg && optarg[strlen(optarg) - 1] == '/') optarg[strlen(optarg) - 1] = 0; break; - case 'w': if (isnumber(optarg)) { - int t = atoi(optarg); + case 'w': if (isnumber(optarg)) { int t = atoi(optarg); if (t >= 0) { WatchdogTimeout = t; break; @@ -219,6 +235,8 @@ int main(int argc, char *argv[]) " -l LEVEL, --log=LEVEL set log level (default: 3)\n" " 0 = no logging, 1 = errors only,\n" " 2 = errors and info, 3 = errors, info and debug\n" + " if logging should be done to LOG_LOCALn instead of\n" + " LOG_USER, add '.n' to LEVEL, as in 3.7 (n=0..7)\n" " -L DIR, --lib=DIR search for plugins in DIR (default is %s)\n" " -m, --mute mute audio of the primary DVB device at startup\n" " -p PORT, --port=PORT use PORT for SVDRP (default: %d)\n" @@ -264,7 +282,7 @@ int main(int argc, char *argv[]) // Log file: if (SysLogLevel > 0) - openlog("vdr", LOG_PID | LOG_CONS, LOG_USER); + openlog("vdr", LOG_PID | LOG_CONS, SysLogTarget); // Check the video directory: