2010-01-13 4 views
3

현재 특정 정보를 ERROR로 기록하는 라이브러리가 있습니다. 나는이 같은 내 Log4j의 설정을 변경하는 경우 : 완전히 모두 도서관의 로깅을 사용하지 않도록 설정합니다log4j에서 패키지의 로그 수준을 변경할 수 있습니까?

log4j.logger.com.company.theirpackage.foo=OFF 

. 그러나, 나는 정말로 정보를보고 싶지만 WARN 또는 INFO 수준에서 기록하도록하고 있습니다. 즉, 해당 코드가 log.error()을 호출 할 때 나는 log.warn() 또는 log.info()을 대신 호출했으면합니다.

log4j로이 작업을 수행 할 수있는 방법이 있습니까?

답변

2

직접 호출하지는 않지만 호출을 가로 채고 레벨을 확인한 다음 원하는 수준으로 인쇄하는 사용자 정의 appender를 작성할 수 있습니다. 또는 일부 지향 프로그래밍을 수행하고 통화를 가로 채거나 변경할 수 있습니다.

하지만 로그인 한 레벨을 변경하려는 이유는 무엇입니까?

+0

서비스에서는 ERROR를 매우 나쁜 이벤트로 취급하지만이 라이브러리는 모든 중요하지 않은 것을 ERROR로 기록합니다. 이 패키지에서 ERROR를 무시하도록 로그 모니터링을 변경할 수는 있지만이 라이브러리는 ERROR와 같은 중요하지 않은 것들을 기록하지 않을 것입니다. – Ross

+0

알았습니다. Spring과 같은 응용 프로그램 프레임 워크를 사용하고 있습니까? 그들은 측면 직조를 아주 쉽게 만듭니다. –

1

LoggingEvent 내의 레벨이 특정 조건과 일치 할 때 변경되는 Filter을 구현하여 가능하다고 생각합니다.

+0

레벨을 변경할 수 있습니까? 나는 네가 할 수 있다고 생각하지 않았다. –

+0

setLevel() 메서드는 없지만 리플렉션을 사용하여 필드를 직접 설정할 수 있습니다. – Confusion

관련 문제