나는이 log4j
다음과 같은 속성 무언가를. 로그인 된 모든 것은 TextProcessor.log
WARN 수준 이상입니다. 여기에서 디버그하도록 설정된 임계 값을 이해하지 못합니다. 누군가 임계 값이 무엇인지 설명 할 수 있습니까?
log4j.logger.TextProcessor=warn,TextProcessor
log4j.appender.TextProcessor=org.apache.log4j.RollingFileAppender
log4j.appender.TextProcessor.File=C:/project/logs/TextProcessor.log
log4j.appender.TextProcessor.MaxFileSize=10MB
log4j.appender.TextProcessor.MaxBackupIndex=10
log4j.appender.TextProcessor.Threshold=debug
log4j.appender.TextProcessor.layout=org.apache.log4j.PatternLayout
log4j.appender.TextProcessor.layout.ConversionPattern=[%d] [%5p] (%F:%L) - %m%n
답변
여기에는 로거와 어 펜더의 두 가지가 있습니다. 불행히도 두 가지 모두에 대해 동일한 이름을 선택했지만 명확하지 않습니다.
로거의 최소 수준은 경고로 설정되어 있습니다. 이는 최소한 경고 수준이없는이 로거로 기록하는 모든 항목이 무시된다는 것을 의미합니다.
로거가 메시지를 수락하면 하나 이상의 어 펜더 (파일, 콘솔, 메일 서버 등)로 전송됩니다. 이러한 각 어 펜더는 임계 값을 정의 할 수 있습니다. 예를 들어 콘솔의 메시지를 오류로 제한하고 로그 파일의 경고 메시지를 수락 할 수 있습니다.
답변
임계 값은 메시지가 기록되는 두 번째 필터입니다.
예 :
log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
.
.
.
log4j.appender.TextProcessor.Threshold=Error
Logger가 DEBUG 수준으로 설정되고 appender Threshold가 Error로 설정된 경우 appender TextProcessor 만 사용하면 오류 및 더 높은 심각도 메시지가 기록됩니다.
임계 값의 사용은 서로 다른 임계 값 수준으로 다른 어 펜더를 정의 할 수 있습니다.
log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
.
.
.
log4j.appender.InfoLogger.Threshold=INFO
수준을 이해하기 위해 log4j 에 로그인 하는 수준은 다음과 같습니다 .
FATAL: shows messages at a FATAL level only
ERROR: Shows messages classified as ERROR and FATAL
WARNING: Shows messages classified as WARNING, ERROR, and FATAL
INFO: Shows messages classified as INFO, WARNING, ERROR, and FATAL
DEBUG: Shows messages classified as DEBUG, INFO, WARNING, ERROR, and FATAL
TRACE : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL
ALL : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL
OFF : No log messages display
자세한 내용 은 URL 로 이동
답변
로깅의 수준은 TRACE
, DEBUG
, INFO
, WARN
, ERROR
와 FATAL
. 심각도에 따라 코드의 어떤 수준에서 기록 할 항목을 선택할 수 있습니다. 예를 들어 메소드의 시작 및 종료를 기록 할 수 있지만 DEBUG
수준 에서 기록하도록 선택할 수 있습니다 . 기본적으로 콘솔에 출력되므로 코드를 디버그하는 데 도움이됩니다 (기본 콘솔 어 펜더가 켜져 있음). 프로덕션으로 이동하는 동안 임계 값을 높이고 ERROR
응용 프로그램이 콘솔이나 로그 파일에 유용하지 않은 세부 정보를 인쇄하지 못하도록 할 수 있습니다.
답변
속성 구성 파일에서 로그 메시지 흐름으로의 간단한 매핑을 제공합니다. (최소화하기 위해 일부 구성 줄을 숨겼습니다)
log4j.rootLogger=ALL, stdout
log4j.logger.com.xyz=INFO, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=DEBUG
...
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.Threshold=WARN
...
그것이 무엇인지 이해하려면 다음을 알아야합니다.
- 가장 왼쪽으로 검색 할 때 로깅 수준이 증가합니다 : TRACE, DEBUG, INFO, WARN, ERROR 및 FATAL
- 로거가 응용 프로그램에서 허용하는 최소 수준의 로깅입니다.
- 기록 할 내용을 결정하는 추가 자에 대한 최소 수준 로깅
** 상속과 가산성에 대해 좀 더 복잡한 것이 있지만 먼저 기본적이고 간단한 것부터 시작해야합니다.