aboutsummaryrefslogtreecommitdiff
path: root/sysklogd
diff options
context:
space:
mode:
Diffstat (limited to 'sysklogd')
-rw-r--r--sysklogd/syslogd.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
index 9a5a04adb..a257e740e 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
@@ -42,6 +42,9 @@ static int logFileRotate = 1;
/* interval between marks in seconds */
static int MarkInterval = 20 * 60;
+/* level of messages to be locally logged */
+static int logLevel = 8;
+
/* localhost's name */
static char LocalHostName[64];
@@ -413,10 +416,12 @@ retry:
#endif
{
/* now spew out the message to wherever it is supposed to go */
- if (opts & SYSLOG_OPT_small)
- message("%s %s\n", timestamp, msg);
- else
- message("%s %s %s %s\n", timestamp, LocalHostName, res, msg);
+ if (pri == 0 || LOG_PRI(pri) < logLevel) {
+ if (opts & SYSLOG_OPT_small)
+ message("%s %s\n", timestamp, msg);
+ else
+ message("%s %s %s %s\n", timestamp, LocalHostName, res, msg);
+ }
}
}
@@ -581,6 +586,13 @@ int syslogd_main(int argc, char **argv)
case 'O':
logFilePath = optarg;
break;
+ case 'l':
+ logLevel = atoi(optarg);
+ /* Valid levels are between 1 and 8 */
+ if (logLevel < 1 || logLevel > 8) {
+ bb_show_usage();
+ }
+ break;
#ifdef CONFIG_FEATURE_ROTATE_LOGFILE
case 's':
logFileSize = atoi(optarg) * 1024;