Linux – crond log level meaning

alpine-linuxcronlogs

I cannot find anywhere the log level meaning of crond.
I know that 0 is pretty much "log everything" while 8 is "show only important info" thanks to the crond help:

/ # crond --help
BusyBox v1.26.2 (2017-11-23 08:40:54 GMT) multi-call binary.

Usage: crond -fbS -l N -d N -L LOGFILE -c DIR

    -f      Foreground
    -b      Background (default)
    -S      Log to syslog (default)
    -l N    Set log level. Most verbose:0, default:8
    -d N    Set log level, log to stderr
    -L FILE Log to FILE
    -c DIR  Cron dir. Default:/var/spool/cron/crontabs

but where I can find exactly the documentation/meaning about the different levels?

I'm on Alpine 3.6.

Best Answer

The particular semantics of the log level values for crond are only defined in the code, it seems. All of the crond logging there goes through a crondlog() function in busybox/miscutils/crond.c function:

static void crondlog(unsigned level, const char *msg, va_list va)
{
    if (level >= G.log_level) {
         /* Do logging... */

So that only those messages with levels higher than the one you specify via the -l command-line option are logged.

Then, elsewhere in that crond.c file, we see that crondlog() is only called via the log5(), log7(), and log8() wrapper functions. Which means that those are the only levels at which that crond program logs messages.

These log levels are specific to crond, and are not related to any syslog(3) levels or other programs. In short, the meaning of these levels is only found in the source code for this program.

Related Question