1

我们希望客户端能够控制客户端 JAR 中的日志记录级别。做这个的最好方式是什么?

目前我们只有少数写入 System.out 的日志语句。我意识到使用 Log4J 可以解决这个问题,尽管我们最大的客户之一不使用 Log4J 并使用他们自己的自定义日志记录实现。有没有一种干净的方法可以让他们控制我们客户端 jar 中的日志记录?

我们想到的选项:客户端可以在客户端 jar 类上显式设置属性以设置日志记录级别(不喜欢这样),我们的客户端 jar 可以读取客户端可以放在其类路径中的可选 .properties 文件(更好但仍然是有点痛)。

4

2 回答 2

5

不要使用具体的日志框架,使用SLF4J,因此您可以根据需要交换日志。我首先将您自己的 System.out 转换为包含的 java.util.logging。对于大多数需求来说,它非常简单且方便。

如果您的客户端使用另一个日志框架,则存在通往 slf4j 的桥梁,或者您可以编写自己的。

编辑:我们已经使用它来简化将使用 LOG4J 的外部库的日志记录到我们使用的 java.util.logging 中。

于 2009-12-02T05:27:50.847 回答
2

看看 Apache commons-logging。它提供了一个薄隔离层,可以让您的代码使用一致的 API,然后插入较低层的记录器(包括 Log4J 或其他)。

于 2009-12-02T03:17:56.517 回答