로깅 메커니즘을 사용해야하는 Java 응용 프로그램을 개발 중입니다. 그리고 지금 나는 자바 라이브러리 로거 중 하나를 선택하거나 Log4j 로거로 이동하는 것을 혼란 스럽다.java.util.logging 및 Log4j 로거 사용의 차이점
그래서 언제 자바 로거 에 갈 수 있는지 알고 싶습니다. 그리고 log4j 로거로 갈 수 있습니다.
로깅 메커니즘을 사용해야하는 Java 응용 프로그램을 개발 중입니다. 그리고 지금 나는 자바 라이브러리 로거 중 하나를 선택하거나 Log4j 로거로 이동하는 것을 혼란 스럽다.java.util.logging 및 Log4j 로거 사용의 차이점
그래서 언제 자바 로거 에 갈 수 있는지 알고 싶습니다. 그리고 log4j 로거로 갈 수 있습니다.
SLF4J 대신 특정 로깅 프레임 워크에서 응용 프로그램을 분리하는 것이 좋습니다. Jakarta Logging, JDK1.4 logging, log4j 등과 같은 다양한 로깅 프레임 워크를위한 어댑터가 있습니다. 로깅 요구 사항에 대한 좋은 추상화입니다.
로거 클래스는 이전에 jdk에 포함되지 않았으므로 여러 라이브러리 구현이 나타납니다. Log4j 라이브러리는 가장 포괄적 인 로깅 유틸리티 세트 중 하나 (포매터, 어 펜더 등)를 가지고 있습니다. 그러나 대부분의 개발자에게는 이것은 과도한 것이므로 단순한 java.util.Logger로 충분할 것입니다.
저는 개인적으로 로거 구현보다 맞춤 래퍼를 사용합니다. 이를 통해 기능적 로깅/감사를 수행하는 사용자 지정 호출을 정의 할 수 있습니다.
프로덕션 환경에서 코드를 다시 컴파일하지 않고 로깅 cfg를 조정할 때 Log4j가 더 유연하다는 것을 알았습니다.
예, 저는 항상 기본 Java 로깅에 비해 log4j를 사용하도록 권합니다. 그런 다음 시동시에 결정을 내리는 것이 가능한 commons-logging을 발견했습니다. 어떤 것이 든간에 생산 표준 Java가 필요할 수도 있습니다. 개발 중에는 log4j의 유연성/성능이 있습니다. 하지만 요즘에는 더 이상이 두 패키지를 모두 사용하지 않을 것입니다! 내가 지금 사용할 것을 권고하는 패키지는 SLF4J (http://www.slf4j.org/)와 BackLog (http://logback.qos.ch/)입니다. – Verhagen
Apache Commoms Logging 프로젝트와 SLF4J이 있으며 둘 중 하나가 기본 로깅 라이브러리를 추상화합니다.
실제로 Log4J는 내장 된 로깅 클래스보다 사용하는 경향이 있습니다. 주로 Log4J는 애플리케이션 서버의 web-app별로 구성 될 수 있지만 JDK 로깅은 JVM별로 구성되기 때문입니다.
로깅 API로 SLF4J를 사용하는 것이 좋습니다. 그런 다음 필요에 따라 검색 프레임 워크를 선택할 수 있습니다.
나는 현재 SLF4J를 시작하면서 모범 사례로 생각하고 간단한 "log to System.out"을 작성했다. http://runjva.appspot.com/logging101/index.html
잘하면 도움이됩니다.
일단 SLF4J에 가면 LogBack을 log4j (동일한 작성자)의 향상된 버전으로 사용하십시오. – Verhagen