1

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

4

2 回答 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 回答