我正在编写一个小型实用程序库,我需要做一些日志记录。我不想强迫用户必须使用特定的日志框架,例如 Log4J 或 commons-logging,所以我应该使用 SLF4J 并包含所有的桥梁,以便它与他们正在使用的任何东西集成吗?还是我应该只使用 java.util.logging?我应该提一下,这也是一个 Maven 项目。
问问题
101 次
2 回答
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>
因此,当有人想使用我时,他们必须只包括他们的日志实现的桥梁。
编辑:我使用依赖管理,这就是缺少版本的原因:)
于 2013-01-06T00:37:05.147 回答
1
是的,不幸的是有这么多不同的日志框架......
如果您想避免将您的客户端绑定到特定的日志记录实现,那么 slf4j 是最好的选择。另一种选择是 Apache Commons Logging,但它有严重的问题;请参阅http://articles.qos.ch/thinkAgain.html。
(如果你使用 java.util.logging 你违反了你的主要要求......)
另一种选择是在你的库中根本不做任何日志记录。
于 2013-01-06T00:55:51.457 回答