4

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.

  • Try man cron. Values may differ depending on your OS/cron version. – ridgy Dec 24 '17 at 13:38
  • Unfortunately on Alpine there is no man. I installed with apk add man man-pages, but still when I do man cron or man crond it says "man: No entry for crond/cron in the manual." – Oscar Fanelli Dec 24 '17 at 19:40
  • OK sorry. I don't know Alpine. so I can't help any futher. – ridgy Dec 24 '17 at 21:08
2

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.

1

I was doing some debugging on my Slackware 14.2 system and needed crond to be more informative.  I downloaded the source code and went through it.

Summary of my crond -l # testing:
-l 0, -l 1, -l 2, ... worked ok up to -l 7; then it got unpredictable since there are only 7 logging levels.  The first four levels were pretty silent; they didn't log anything.

Summary of logging levels from crond main.c:

 -l emerg or panic  LOG_EMERG   0   [* system is unusable *]
 -l alert           LOG_ALERT   1   [* action must be taken immediately *]
 -l crit            LOG_CRIT    2   [* critical conditions *]
 -l error or err    LOG_ERR     3   [* error conditions *]
 -l warn or warning LOG_WARNING 4   [* warning conditions *]
 -l notice          LOG_NOTICE  5   [* normal but significant condition *] the default
 -l info            LOG_INFO    6   [* informational *]
 -l debug           LOG_DEBUG   7   [* debug-level messages *] same as -d option 

Note:the higher the number, the more logging you will get from crond.  I run it with -l debug now.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.