2010-01-28 3 views
44

appender를 기반으로 단일 로거에 대해 서로 다른 로그 수준을 구성 할 수 있습니까?단일 로거에 대한 appender 당 로그 수준

question과 비슷한 점을 알고 있습니다. 이미이 문제가있는 것은 사실이지만,이 문제는 임계 값이 모든 applet에 기록되는 모든 logger에 적용된다는 것입니다. 단일 로거에 적용 할 수 있습니다. 즉

은 지금까지 나는 이런 일이 :

log4j.rootLogger=WARN, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Threshold=WARN 
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout 

log4j.logger.mylogger=DEBUG,logfile 
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.logfile.DatePattern=${roll.pattern.daily} 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=%d{${datestamp}} [%t] %-5p %C{2} - %m%n 
log4j.appender.logfile.File=mylogfile.log 

내가 mylogger DEBUG 메시지가 로그 파일 펜더에 보낼 싶은, 그러나 나는 또한 mylogger INFO 메시지로 전송하려면 stdout appender (그러나 다른 모든 로거 경고에만 해당). 임계 값을 사용하여 stdout을 WARN으로 제한하면 mylogger의 출력이 제한됩니다.

답변

46

아하, 나는

log4j.appender.stdout.Threshold=INFO 

더 조심 처음 라운드 했어야에

log4j.appender.stdout.Threshold=WARN 

을 변경하여 해결했습니다.

+9

XML 형식을 사용하는 것이 좋습니다. IMO – skaffman

+0

이 상당히 이해하기 쉽고 속성 파일을 통해 사용할 수없는 기능을 제공합니다. – Joel

+0

니스! 이것은 1 년 후 나에게 매우 유용했다 : - 나는 응용 프로그램 내에서 다음과 같이 런타임에이를 수행했다. myAppender.setThreshold (Level.INFO). – Jochem

관련 문제