Program Tip

Log4J에서 임계 값은 무엇을 의미합니까?

programtip 2020. 10. 11. 11:12
반응형

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, ERRORFATAL. 심각도에 따라 코드의 어떤 수준에서 기록 할 것인지 선택할 수 있습니다. 예를 들어 메소드의 시작 및 종료를 기록 할 수 있지만 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
...

schema of logging from settings above

그것이 무엇인지 이해하려면 다음을 알아야합니다.

  • 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

반응형