← Commit list

1decd0e52

Denis Vlasenko
Denis Vlasenko
2006-09-30
SOURCE BUG Duration: 53s

Subject

syslogd: add option to suppress logging of messages lower than level N (-n N)

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

include/usage.h+2 -1
@@ -2780,7 +2780,8 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \
"\t-m MIN\t\tMinutes between MARK lines (default=20, 0=off)\n" \
"\t-n\t\tRun as a foreground process\n" \
"\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)\n" \
- "\t-S\t\tMake logging output smaller." \
+ "\t-l n\tSets the local log level of messages to n\n" \
+ "\t-S\t\tMake logging output smaller" \
USE_FEATURE_ROTATE_LOGFILE( \
"\n\t-s SIZE\t\tMax size (KB) before rotate (default=200KB, 0=off)\n" \
"\t-b NUM\t\tNumber of rotated logs to keep (default=1, max=99, 0=purge)") \
sysklogd/syslogd.c+16 -4
@@ -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;