답변:
나는 당신이 묘사 할 필요에 대해 util.logging을 사용하는 것이 좋을 것이라고 말하고 싶습니다.
좋은 의사 결정 트리를 보려면 Log4j와 java.util.logging을 살펴보십시오.
질문 1 : SMTPHandler, NTEventLogHandler 또는 매우 편리한 FileHandler와 같이 Log4j에 JUL이 가지고 있지 않은 영리한 핸들러가 필요합니까?
질문 2 : 로깅 출력 형식을 자주 바꾸고 싶습니까? 쉽고 유연한 방법이 필요하십니까? 즉, Log4j의 PatternLayout이 필요합니까?
질문 3 : 프로덕션 환경에서 컴파일 및 배포 한 후 애플리케이션에서 복잡한 로깅 구성을 변경할 수있는 능력이 필요하십니까? "이 클래스의 심각한 메시지는 전자 메일을 통해 지원 담당자에게 전송됩니다. 클래스의 하위 집합의 심각한 메시지는 서버의 syslog 데몬에 기록됩니다. 클래스의 다른 하위 집합의 경고 메시지는 기록됩니다. 네트워크 드라이브 A의 파일에 연결 한 다음 모든 위치의 모든 메시지가 네트워크 드라이브 B의 파일에 기록됩니다 "? 그리고 당신은 당신이 이틀마다 그것을 조정 볼 수 있습니까?
위의 질문에 예라고 대답 할 수 있으면 Log4j로 이동하십시오. 당신이 그들 모두에게 확실하게 대답하지 않는다면, JUL은 충분하고 SDK에 이미 포함되어 있습니다.
즉, 요즘 거의 모든 프로젝트가 다른 라이브러리가 사용하기 때문에 log4j를 포함하여 중단되는 것처럼 보입니다.
SLF4J ( Simple Logging Facade for Java) 를 사용하는 것이 좋습니다 . Log4J를 포함하는 다른 제공자를 지원하며 Apache Commons Logging의 대체물로 사용할 수 있습니다.
Log4j는 오랫동안 사용되어 왔으며 매우 잘 작동합니다. 나는 그것을 뒷받침 할 과학적 연구는 없지만 많은 클라이언트에서 본 것을 바탕으로 쉽게 다른 프레임 워크보다 많이 사용되는 로깅 프레임 워크입니다. 오랜 시간 동안 사용되어 왔으며 Next Big Logging Framework로 대체되지 않았습니다.
설정이 간단하고 기본 어 펜더 (출력)를 쉽게 배울 수 있습니다. 다음을 포함하여 사용 가능한 전체 호스트 추가자가 있습니다.
다른 사람. 자신 만의 어 펜더를 작성하는 것도 어렵지 않습니다. 또한 각 어 펜더에는 많은 유연성이있어 로그에 출력되는 내용을 구체적으로 제어 할 수 있습니다.
한 가지 참고 사항은 log4j 외에도 Apache Commons Logging을 사용할 때 일련의 클래스 로더 문제가 발생했습니다. 하나의 특정 응용 프로그램에만 사용되었지만 commons logging과 같은 추상화 계층을 사용할 때 유연성을 제공하는 대신 log4j 만 사용하는 것이 더 간단하다는 것을 알았습니다.
자세한 내용은이 기사를 참조하십시오 .
행운을 빕니다!
java.util.logging은 다른 수하물 중 일부가 제공하는 초과 수하물없이 포괄적 인 로깅 패키지를 제공합니다.
log4j는 전반적으로 훨씬 좋은 패키지이며 java.util.logging에 포함 된 딸꾹질이 없습니다. logsj를 직접 사용하는 것이 commons logging을 사용하는 것보다 쉽다는 것이 두 번째입니다.
로깅 인터페이스로 Apache Commmons Logging 을 사용하는 것이 좋습니다 . 이렇게하면 언제든지 코드를 변경하지 않고도 원하는 때에 로깅 구현을 유연하게 전환 할 수 있습니다.