임은 당신이 당신의 로깅 인프라의 루트 레벨을 설정 구성을 사용하고 있는지 상상 : 로거 이름을 사용하여 로깅의 다른 수준을 정의 할 수 있습니다 그러나
<root>
<level value="DEBUG" />
<appender-ref ref="A1" />
</root>
합니다. 귀하 또는 타사 응용 프로그램이 표준 관행을 따랐 경우 로거
- MyApp.Main
- MyApp.Business
- 의 MyApp라는 것, 그래서 당신 로거는, 그들이 네임 스페이스와 함께 살고있는 클래스의 이름을 따서 명명된다. Business.Messages
- ThirdParty.API
- 등 ...이 경우에 할 수있는 일
네임 스페이스 르에서 로깅을 선언하다 VEL에 관심이있어. 예를 들어 다음과 같은
<logger name="MyApp.Main">
<level value="DEBUG" />
<appender-ref ref="A1" />
</logger>
을 추가하고 root
수준에서 모든 어 펜더를 제거하는 것만 MyApp.Main
에서 살고 로그인 할. 그런 다음 MyApp
이름 아래에있는 로거 만 기록합니다. 자세한 내용은 the documentation을 참조하십시오.
불행하고 로거가이 계층 구조를 준수하지 않는 경우에도 첨부 파일에서 LoggerMatchFilter을 사용하여 필터링 할 수 있습니다. 이렇게하면 로거가 전달할 수있는 항목이나 로거가 수행 할 수없는 항목을 정의 할 수 있습니다. 이 많이 있습니다. 언제든지 둘러 볼 수 있습니다.
예 할 수 있습니다. 그러나 로깅을 유지하고 싶은 제 3 자 도서관이 많이 있습니다. 내가 포함 규칙보다 더 많은 제외 규칙을 찾고 있습니다. 당신이 제안하는 필터링은 유망 해 보입니다. – chollida
실제로 로거 계층 구조가 여러 개인 경우 모든 것을 사용자 정의하는 것이 더 귀찮습니다. 'LoggerMatchFilter'는이 경우 훨씬 더 나은 해결책입니다 – samy