2013-01-06 3 views
1

작은 유틸리티 라이브러리를 작성 중이므로 일부 로깅이 필요합니다. 사용자가 Log4J 또는 commons-logging과 같은 특정 로깅 프레임 워크를 사용하도록 강요하고 싶지는 않습니다. 따라서 SLF4J를 사용해야하고 모든 브리지를 포함 시켜서 사용중인 모든 것과 통합 할 수 있어야합니다. 아니면 그냥 java.util.logging을 사용해야합니까? 이것이 Maven 프로젝트이기도하다.유틸리티 라이브러리 로깅 표준

답변

4

개인적으로, 이러한 경우를 위해, 나는 단지 다음과 같은 런타임 종속성이 있습니다

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
</dependency> 

그리고이 테스트를 위해 : 누군가가 저를 사용하고자 할 때

<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-core</artifactId> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <scope>test</scope> 
</dependency> 

그래서, 그들은 단지 포함해야을 로깅 구현을위한 브릿지

편집 : 나는 버전

+0

이것은 내가 생각한 것입니다. 커뮤니티를 만들려하고 싶었습니다. :) –

1

... 너무 많은 다른 로깅 프레임 워크가 거기 있다는 것을 불행한 예

당신이 동점 피하려면 :)없는 이유 의존성 관리를 사용 클라이언트를 특정 로깅 구현으로 변환 한 다음 slf4j를 사용하는 것이 가장 좋습니다. 또 다른 대안은 Apache Commons Logging이지만, 심각한 문제가 있습니다. http://articles.qos.ch/thinkAgain.html을 참조하십시오.

(당신이 ... 당신이 기본 요구 사항을 위반하고 java.util.logging의 사용하는 경우)


다른 대안은 라이브러리에 전혀 로깅을 수행하지 않는 것입니다.