프로젝트에서 여러 개의 오픈 소스 프레임 워크를 사용 중입니다. 각 프레임 워크는 일부 로깅 라이브러리를 사용합니다. 제 문제는 최종 산출물에 log4j (두 가지 버전으로 제공), 로그백 기능이있는 slf4j 및 물론 공통 로깅이 포함되어 있다는 것입니다. 라이브러리 수를 줄이는 방법을 찾고 있는데 메이븐의 pom 파일에서 로깅 라이브러리를 제외하고 로깅 메시지를 가로 채기 위해 slf4j를 구성 할 수 있습니까?프로젝트에서 로깅 라이브러리 수 줄이기
답변
편집 좀 더 밀접하게 질문을 읽어 보시기 바랍니다. slf4j는 slf4j가 아닌 프로젝트를위한 레거시 브리지를 추가합니다. 하지만 런타임 경로에 종속 jar를 제공해야합니다. 다른 사람의 작업을 반복하지 않아도된다는 비용입니다.
내 생각에 말하자면 본질적으로 당신의 jvm에 링크가 필요한 모든 정규화 된 기호가 있다고 생각합니다. 일부 직설 부두가 부족하여 종속 라이브러리를 포함하여 여러분을 데려 갈 수는 없습니다.
pax-logging을 살펴보십시오. 그것은 거의 모든 로깅 프레임 워크 인터페이스 (올바른 패키지 이름과 클래스 등)를 가져올 수 있습니다. 그러나은 구현하지 않습니다. 대신,이 facades를 log4j 백엔드에 연결합니다.
즉, 프로젝트는 원래의 로깅 프레임 워크를 계속 사용하지만, 이는 투명한 방식으로 log4j에 전달됩니다. 이렇게하면 로깅 결과가 일관되고 한 곳에서만 구성됩니다.
Slf4j에는 its manual에 몇 가지 정보가 있습니다.
난 당신이 찾고 메이븐의 모든 종속성에서 log4j
및 commons-logging
을 제외하고 대신 log4j-over-slf4j
과 jcl-over-slf4j
패키지를로드하는 것입니다 무엇을 생각합니다. log4j
및 commons-logging
을 대체하도록 설계되었으며 Logger
, Log
및 친구를 대체 할 적절한 org.apache.log4j
및 org.apache.commons.logging
클래스를 포함합니다. 이것은 라이브러리를 줄이지 않지만 모든 로그 출력을 sl4fj
을 통해 저장합니다. 이 클래스의 사용을 제거하지 않는다면 (분명히) slf4j
래퍼 또는 원본에 대한 종속성을 줄일 수 없습니다.
대신 할 다음 하나 개 로깅 패키지 올바른 방법으로 사용하고자하는 경우 대신 로깅 위임자로 설계 commons-logging
를 사용하도록 전환하고 다음 commons-logging
에 잇는 slf4j-jcl
패키지를 사용할 수 있습니다.
후자의 경우 log4j
이 필요한 각 종속성에 대해 종속성을이 방식으로 제외합니다.
<dependency>
<groupId>.../groupId>
<artifactId>...</artifactId>
<version>...</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
- 1. Fluent NHibernate에서 로깅 출력 줄이기
- 2. 라이브러리 설치 줄이기
- 3. py2exe : 라이브러리 보관함의 크기 줄이기
- 4. C++ 로깅 라이브러리 설정
- 5. Pantheios 로깅 라이브러리 구성
- 6. C 로깅 라이브러리
- 7. Red5 : 외부 라이브러리 로깅
- 8. 엔터프라이즈 라이브러리 로깅 블록
- 9. 모든 프로젝트에서 사용할 수 있도록 라이브러리 추가
- 10. 라이브러리 프로젝트에서 .aidl 파일을 사용할 수 없습니까?
- 11. 독립형 테스트 라이브러리 프로젝트에서 라이브러리 클래스를 찾을 수 없음
- 12. 루아에 대한 좋은 로깅 라이브러리
- 13. 엔터프라이즈 라이브러리 4.1 로깅 오류?
- 14. C++ 용 프로세스 로깅 라이브러리
- 15. 엔터프라이즈 라이브러리 로깅 - 다중 스레드 로깅 다중 로그 파일
- 16. GWT 프로젝트에서 로깅 작업을 수행하는 방법은 무엇입니까?
- 17. getTableCellRendererComponent 호출 수 줄이기
- 18. 원격 개체 수 줄이기
- 19. 코코아 프로젝트에서 부스트 라이브러리 사용
- 20. 라이브러리 프로젝트에서 경로 오류 빌드
- 21. Grails 프로젝트에서 Jboss 7 블록 로깅
- 22. F # 프로젝트에서 C# 라이브러리 사용?
- 23. 라이브러리 프로젝트에서 생성자 인수의 기본값
- 24. Webapp 프로젝트에서 Tomcat 라이브러리 사용
- 25. 클라이언트 프로젝트에서 라이브러리 메소드 구현
- 26. 런타임시 엔터프라이즈 라이브러리 로깅 블록의 구성을 변경할 수 있습니까?
- 27. 외부 라이브러리 용 로깅 전략 (slf4j?)
- 28. 원격 로깅 라이브러리 대 소프트웨어 (로거)
- 29. 데이터베이스에서 저장 매체로 로깅 라이브러리 구현
- 30. 엔터프라이즈 라이브러리 로깅 5 - 플랫 파일 롤링
이 문제는 내 로깅과 관련이 없으며 log4j를 사용하고 있습니다. 다른 로깅 라이브러리는 3 자 라이브러리와 함께 제공됩니다. slf4j가 다른 로깅 메시지를 수신하고 캡처하도록 구성 할 수 있습니까? –
그것이 제가 찾고 있던 것입니다. 힘내 친구 야. –