java - 如何控制客户端库中的日志记录级别?

标签 java logging log4j client-library

我们希望客户端能够控制客户端 JAR 中的日志记录级别。执行此操作的最佳方法是什么?

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

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

最佳答案

不要使用具体的日志框架,使用SLF4J ,因此您可以根据需要交换日志记录。我首先将您自己的 System.out 转换为包含的 java.util.logging。它非常简单明了,可以满足大多数需求。

如果您的客户端使用其他日志记录框架,则存在到 slf4j 的桥接或者您可以编写自己的桥接器。

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

关于java - 如何控制客户端库中的日志记录级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1830448/

相关文章:

java - 哪个 UI 组件可以包含静态 html 文件?

java - 如何为未捕获的线程异常处理程序编写单元测试。

Python记录器,相对时间(relativeCreated),引用可以重置吗?

android - Android 上的 Logcat 问题

java - Spring Boot ConnectException 没有被捕获

java - Jmeter单线程组中的多个并发用户

python - 记录 dictConfig 不适用于多处理

Flink 集群中 Log4j 的日志记录问题?

使用 log4j 自定义布局类运行应用程序时,jBoss 上出现 java.lang.LinkageError

java - 如何使用 PowerMockito 模拟 PropertyConfigurator.configure()?