SL4J, Jakarta Commons Logging, 타사 라이브러리의 Log4J 및 내 코드를 사용한 로깅

StackOverflow https://stackoverflow.com/questions/462566

문제

로깅에 대한 몇 가지 질문,보다 구체적으로 설정을 설정하고 작동하는지 확인하는 것에 대한 질문이 있습니다.

내가하고있는 프로젝트는 사용할 것입니다 창구, 그리고 최대 절전 모드. 개찰구와 최대 절전 모드는 Java에 간단한 벌목 정면을 사용한다는 것을 알고 있습니다.SL4J) 그리고 그 봄은 다음을 사용하고 있습니다 Apache Commons의 로깅 구성 요소.

그들은 행복하게 공존 할 것인가? 나는 내가 사용할 것이라고 생각했다 log4J Apache Commons의 SL4J 및 로깅 구성 요소와 함께 좋은 생각이라고 생각하십니까?

로깅 데이터를 공통 파일로 출력하기 위해 모두 설정할 수 있습니까? 아니면 별도의 파일을 사용해야합니까? 아니면 로깅 메시지를 데이터베이스에 저장해야합니까? (텍스트 파일에서 매우 편리한 등을 찾는 것처럼 오히려 나는 아닙니다.)

스프링의 경우 Apache Commons 로깅 구성 요소에 대한 종류의 구성 파일이 필요하다고 생각합니다.

이것들을 설정했을 때 모든 것이 작동하는 것을 볼 수 있다고 생각합니다. 세 가지 프레임 워크가 해당 모드에서 일부 정보를 출력하는 것이 상당히 확실하기 때문에 로깅 레벨을 정보로 설정했다고 생각하십니까? 아니면 확인하는 더 좋은 방법이 있습니까?

그리고 나의 마지막 질문. 내가 시작한 프로젝트에서 내 자신의 로깅 목적으로 SL4J를 사용하는 것이 좋습니다. (나는 log4J를 직접 사용하겠다고 생각했지만 로깅에 대해 조금 더 배웠고 많은 존경받는 라이브러리가 로깅 요구에 대한 다리/정면의 경로를 선택하는 것 같습니다. 비용은 그렇게하지 않을 이유가 없습니다.)

나는 당신이 당신의 벌목을 어떻게하고 있는지에 대해 더 많이 듣기를 고대하고 있습니다. 나 자신을 향상시키고 싶어하는 새로운 영역입니다.

도움이 되었습니까?

해결책

글쎄 SLF4J는 커먼즈 로깅과 같은 외관 일뿐입니다. 즉, 여전히 다른 일이 필요하다는 것을 의미합니다. 라이브러리 저자는 사용자가 여러 로깅 라이브러리 및 구성을 강요하지 않도록 허용합니다. Log4J 및 Logback은 일반 로깅 리브입니다.

보다 여기 더 많은 정보를 위해서.

SLF4J는 a 커먼즈 벌목 다리 Commons Logging Library를 교체하는 데 사용할 수 있습니다. 나는 그 스키마가 상황을 잘 설명한다고 생각합니다.

이제 SLF4J-LOGJ12.jar를 사용하여 커먼즈 로깅을하고 SLF4J를 사용하여 LOG4J (또는 BTW를 사용하여 Logback은 백킹 엔진으로 SLF4J와 함께 사용할 추가 라이브러리가 필요하지 않습니다.

따라서 신청서는 가질 것입니다

  • jcl104-over-slf4j.jar (Bridge jakarta commons에 SLF4J에 벌목)
  • slf4j.jar (최대 절전 모드 및 다른 사람들은 SLF4J를 사용하기 위해)
  • slf4j-logj12.jar (slf4j가 log4j를 백엔드로 사용하기 위해)
  • log4j.jar (응용 프로그램을 사용하려면 모든 구성이 여기에서 수행됩니다)

다른 팁

다음은 SLF4J로 모든 것을 리디렉션하는 방법입니다.

  • 제거하다 commons-logging.jar 당신의 클래스 경로에서. Maven을 사용하고 있고 커먼즈 로깅을 제거하는 데 어려움이 있다면 이것.

  • 놓다 jcl-over-slf4j.jar ClassPath에서 (SLF4J 분포에 나옵니다). 이것은 JCL의 클래스를 모방하는 드롭 인 교체품이지만 내부적으로 SLF4J를 호출합니다. 이것은 Spring과 JCL을 사용하는 다른 프레임 워크를 처리합니다.

SLF4J를 좋아하는 백엔드 (Log4J, Logback ...)에 연결하여 slf4j-xxx.jar 클래스 경로에서. 백엔드를 구성하여 모든 카테고리를 하나의 파일에 로그인하면 완료됩니다.

응용 프로그램에서 SLF4J를 사용하는 것은 엄격하게 필요하지 않습니다. JCL 및 SLF4J와 같은 라이브러리는 원래 라이브러리를 작성하고 고객을 특정 로깅 프레임 워크에 고정시키고 싶지 않은 사람들을 위해 설계되었습니다.

추신 : 그건 그렇고, JCL = Jakarta Commons Logging

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top