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
しかし、さまざまなレベルに関するドキュメント/意味を正確に見つけることができる場所はどこですか?
私はアルパイン3.6を使用しています。
crond
のログレベル値の特定のセマンティクスは、コードでのみ定義されているようです。そこにあるすべてのcrond
ロギングは busybox/miscutils/crond.c
関数のcrondlog()
関数を経由します:
static void crondlog(unsigned level, const char *msg, va_list va)
{
if (level >= G.log_level) {
/* Do logging... */
そのため、-l
コマンドラインオプションで指定したメッセージよりもレベルhigherのメッセージのみがログに記録されます。
次に、そのcrond.c
ファイルの他の場所で、crondlog()
がonlyであり、log5()
を介して呼び出されていることがわかります。 、log7()
、およびlog8()
ラッパー関数。つまり、それらのcrond
プログラムがメッセージをログに記録する唯一のレベルです。
これらのログレベルはcrond
に固有であり、syslog(3)
レベルや他のプログラムとは関係ありません。つまり、これらのレベルの意味は、このプログラムのソースコードでのみ見つかります。
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
注:数値が大きいほど、crondから取得するログが多くなります。今は-l debug
で実行しています。