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

나는이 log4j다음과 같은 속성 무언가를. 로그인 된 모든 것은 TextProcessor.logWARN 수준 이상입니다. 여기에서 디버그하도록 설정된 임계 값을 이해하지 못합니다. 누군가 임계 값이 무엇인지 설명 할 수 있습니까?

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
...

위의 설정에서 로깅 스키마

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

  • 가장 왼쪽으로 검색 할 때 로깅 수준이 증가합니다 : TRACE, DEBUG, INFO, WARN, ERROR 및 FATAL
  • 로거가 응용 프로그램에서 허용하는 최소 수준의 로깅입니다.
  • 기록 할 내용을 결정하는 추가 자에 대한 최소 수준 로깅

** 상속과 가산성에 대해 좀 더 복잡한 것이 있지만 먼저 기본적이고 간단한 것부터 시작해야합니다.


답변