crond ログレベルの意味

crond ログレベルの意味

どこでもログレベルの意味を見つけることができませんcrond。 crondヘルプのおかげで、0は「すべてを記録」し、8は「重要な情報のみを表示する」ことを知っています。

/ # 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

しかし、さまざまなレベルの文書/意味を正確にどこで見つけることができますか?

Alpine 3.6を使用しています。

答え1

ログレベル値の具体的な意味は、crondコードでのみ定義されているようです。すべてのロギングは関数を介してcrond行われます。crondlog()busybox/miscutils/crond.c機能:

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

これにより、レベルのあるメッセージのみが高い-lコマンドラインオプションで指定したよりも多くのコンテンツを記録します。

その後、crond.cファイルの他の場所でcrondlog()見ることができます。ただパスlog5()log7()ラッパーlog8()関数の呼び出し。これは、プログラムがメッセージを記録する唯一のレベルであることを意味しますcrond

これらのログレベルは具体的であり、crondどのレベルや他のプログラムにも関連しません。syslog(3)簡単に言えば、これらのレベルの意味はプログラムのソースコードでのみ見つけることができます。

答え2

Slackware 14.2システムでいくつかのデバッグを実行しており、crondで追加情報が必要です。ソースコードをダウンロードしてみました。

私のテストの概要:crond -l #
-l 0, -l 1, -l 2, ... うまく動作します-l 7が、ロギングレベルが 7 つしかないため、予測できなくなります。最初の4階はとても静かでした。何も録音されていません。

次のログ記録レベルの概要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 

注:数値が高いほど、クロンドでより多くのロギングが得られます。今実行します  -l debug 。

関連情報