summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--tools.c4
-rw-r--r--vdr.14
-rw-r--r--vdr.c40
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 <hannu@opensound.com>
Jürgen Schmidt <ju@ct.heise.de>
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 <mail@uwe-freese.de>
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 <getopt.h>
@@ -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: