내 프로젝트에서 java.util.Logger를 사용하고 있으며 간단한 ConsoleHandler를 사용하고 있습니다. 기본적으로 로깅 수준은 'Info'입니다. 나는 수준을 '좋아'로 변경하고 싶었습니다. 하지만 Logger와 Handler 모두에서 레벨을 변경해야했습니다. 왜? 이것에 대한 필요성은 무엇입니까? 왜 이런 방식으로 설계 되었습니까? Logger/Handler에서 레벨을 단독으로 설정하지 않고 그 작업을 완료 할 수없는 이유는 무엇입니까?java.util.logger.setLevel()과 handler.setLevel()의 차이점은 무엇입니까?
2
A
답변
1
Logger
은 복수 Handlers
을 소유 할 수 있습니다. 예 : 로거는 로그 이벤트를 동시에 전달할 ConsoleHandler
및 FileHandler
을 가질 수 있습니다.
Logger
및 Handler
은 필터 목적에 대해 서로 다른 로그 수준 설정을 가질 수 있습니다.
Logger.setLevel()
만 일정 수준에서 로그인 할 로거를 구성합니다.Handler.setLevel()
은 처리기가 으로 설정되어 특정 수준의 로거에서 로그 이벤트 만 처리합니다.
이렇게하면 로거를 Logger.setLevel(INFO)
으로 설정하여 거의 모든 것을 기록 할 수 있습니다. 또한 "정보"로거에 첨부 된 FileHandler
은 적어도 경고 FileHandler.setLevel(WARNING)
인 로그 만 처리하도록 알려줄 수 있습니다. 너 ConsoleHandler
은 여전히 정보 로그를 보여줄 것인데, 로그 파일에서 경고와 오류 만 찾을 수 있습니다.
사용해보기. 매우 간단합니다.