如何控制客户端库中的日志级别?

时间:2009-12-02 03:15:21

标签: java logging log4j client-library

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

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

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

2 个答案:

答案 0 :(得分:5)

不要使用具体的日志记录框架,请使用SLF4J,以便在需要时可以交换日志记录。我首先将您自己的System.out转换为包含的java.util.logging。对于大多数需求来说,它非常简单直接。

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

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

答案 1 :(得分:2)

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