내 애플리케이션의 시스템 로그에 모든 내용을 기록하고 싶습니다. 나는 주로 두 가지 수준에서 로깅을 수행할 것입니다. 정보 및 디버깅. 최종 사용자가 디버그 메시지를 보거나 액세스하는 것을 원하지 않습니다. 따라서 이러한 메시지는 syslog.conf
특수 폴더 에 캡처됩니다 .
제 질문은 콘솔과 메시지 파일에 추가 메시지를 기록할 수 있습니까?입니다. 내 생각은 다음과 같지만 예상대로 작동하지 않습니다.
# /etc/syslog.conf Configuration file for busybox's syslogd utility
*.debug /var/log/debug
*.info /var/log/info
*.info /dev/consol
답변1
~에 따르면man 3 syslog
를 호출할 때 "우선순위" 값이 올바르게 설정되었는지 확인하십시오 syslog()
.
매뉴얼 페이지의 유용한 조각:
매개변수는
priority
값과 값(아래 설명 참조)을 OR하여 구성됩니다. OR된 값이 없으면 설정된 기본값을 사용하고, 이전 호출이 없으면 기본값을 사용합니다.facility
level
facility
priority
openlog()
openlog()
LOG_USER
그리고
값
facility
: 이facility
매개변수는 메시지를 기록하는 프로그램 유형을 지정하는 데 사용됩니다. 이를 통해 구성 파일은 다양한 시설의 메시지가 다르게 처리되도록 지정할 수 있습니다.
LOG_AUTH
보안/인증 메시지LOG_AUTHPRIV
보안/인증 메시지(비공개)LOG_CRON
시계 데몬(cron 및 at) =LOG_DAEMON
개별 시설 값이 없는 시스템 데몬LOG_FTP
FTP 데몬LOG_KERN
커널 메시지(이러한 메시지는 사용자 프로세스에서 생성될 수 없음)LOG_LOCAL0
다음을 통해LOG_LOCAL7
로컬 사용을 위해 예약됨LOG_LPR
라인 프린터 서브시스템LOG_MAIL
메일 하위 시스템LOG_NEWS
USENET 뉴스 하위 시스템LOG_SYSLOG
syslogd(8)에 의해 내부적으로 생성된 메시지LOG_USER
(기본값) 일반 사용자 수준 메시지LOG_UUCP
UUCP 하위 시스템값
level
: 메시지의 중요성을 결정합니다. 이러한 수준은 중요도가 낮아지는 순서대로 표시됩니다.
LOG_EMERG
시스템을 사용할 수 없습니다LOG_ALERT
즉시 조치를 취해야 합니다LOG_CRIT
심각한 상태LOG_ERR
오류 상태LOG_WARNING
경고 조건LOG_NOTICE
정상이지만 중요한 상태LOG_INFO
정보 메시지LOG_DEBUG
디버그 수준 메시지이 기능을
setlogmask(3)
사용하면 로깅을 지정된 수준으로만 제한할 수 있습니다.