どこでもログレベルの意味を見つけることができません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
。