Log4J에서 임계 값은 무엇을 의미합니까?
안녕 모두 아래와 같은 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
...
그것이 무엇인지 이해하려면 다음을 알아야합니다.
- The levels of logging increase when retrieving to the leftmost: TRACE, DEBUG, INFO, WARN, ERROR and FATAL
- Minimum level logging which logger accepts from application.
- Minimum level logging on appender which decides what will be written
** There are some thing more complex about inheritance and additivity, but you should start at basic and simple things first.
참고URL : https://stackoverflow.com/questions/5119883/what-does-threshold-mean-in-log4j
'Program Tip' 카테고리의 다른 글
지속적 통합 서버 (0) | 2020.10.11 |
---|---|
ANSI C에 네임 스페이스가없는 이유는 무엇입니까? (0) | 2020.10.11 |
연관성과 종속성의 차이점은 무엇입니까? (0) | 2020.10.11 |
Scala의 apply () 메서드 매직은 어떻게 작동합니까? (0) | 2020.10.10 |
JavaScript 표현식에서 쉼표는 무엇을합니까? (0) | 2020.10.10 |