实用程序库的日志标准

时间:2013-01-06 00:28:11

标签: java logging

我正在编写一个小型实用程序库,我需要做一些日志记录。我不想强迫用户必须使用特定的日志框架,如Log4J或commons-logging,所以我应该使用SLF4J并包含所有桥接器,以便它只是与它们正在使用的任何东西集成?或者我应该只使用java.util.logging?我应该提一下,这也是一个Maven项目。

2 个答案:

答案 0 :(得分: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>

因此,当有人想要使用我时,他们必须只包括用于日志记录实现的桥梁。

编辑:我使用依赖关系管理,这就是版本丢失的原因:)

答案 1 :(得分:1)

是不幸的是,那里有很多不同的日志框架......

如果您想避免将客户端绑定到特定的日志记录实现,那么slf4j是最好的选择。另一个替代方案是Apache Commons Logging,但它有严重的问题;见http://articles.qos.ch/thinkAgain.html

(如果您使用java.util.logging,则违反了您的主要要求......)


另一种方法是不在库中进行任何日志记录。