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

하지만 다양한 수준의 문서/의미를 정확히 어디서 찾을 수 있나요?

알파인 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()볼 수 있습니다 .오직Pass 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 

참고: 숫자가 높을수록 crond에서 더 많은 로깅을 얻습니다. 지금 실행하겠습니다  -l debug .

관련 정보