我正在编写一个小型实用程序库,我需要做一些日志记录。我不想强迫用户必须使用特定的日志框架,如Log4J或commons-logging,所以我应该使用SLF4J并包含所有桥接器,以便它只是与它们正在使用的任何东西集成?或者我应该只使用java.util.logging?我应该提一下,这也是一个Maven项目。
答案 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,则违反了您的主要要求......)
另一种方法是不在库中进行任何日志记录。