java - 将 log4j 重新路由到 slf4j

标签 java log4j slf4j

如果第 3 方依赖项使用具体框架(例如 log4j)进行记录,并且我希望我的应用程序通过 slf4j 进行所有记录,那么是否可以配置 log4j(在 XML、属性文件等中)以将日志消息重定向到 slf4j API? (在运行时,它会绑定(bind)到我选择的具体 slf4j 绑定(bind)。)

如果能通过同一个 API 将所有日志消息发送到同一个地方就好了。

我什至不介意我是否必须做一些有点疯狂的事情,比如将 log4j.properties 指向一些临时代码(我会编写),这反过来将流量引导至 slf4j!

我只是不知道从哪里开始。提前致谢!

最佳答案

当然可以,documentation 中对此进行了详尽的解释:

log4j-over-slf4j

SLF4J ship with a module called log4j-over-slf4j. It allows log4j users to migrate existing applications to SLF4J without changing a single line of code but simply by replacing the log4j.jar file with log4j-over-slf4j.jar, as described below.

它既巧妙又巧妙 - 您正在删除 log4j.jar 并将其替换为 log4j-over-slf4j.jar。后一个 JAR 镜像相同包中的 Log4J 类,因此您的应用程序和库甚至不必重新编译。但是新的实现只是重新路由到 SLF4J。

关于java - 将 log4j 重新路由到 slf4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384729/

相关文章:

java - 以编程方式在 logback 中添加附加程序

java - 未找到 slf4j 依赖项

java - 在 Android 中动态解析 XML?

java - 在常数时间内连接两个 java.util.LinkedList

java - 在 Java 中使用 XML : fluent XSD and no need to parse

java - log4j,想在控制台中只显示调试(不是信息)并在应用程序启动时清除日志文件

java - Java 中每个应用程序使用一个记录器对象的性能

java - 为什么 ComboBoxModel<E> 返回对象而不是 E

java - Log4J 在应用程序记录日志时复制日志文件

maven - 通过将其添加为测试范围来排除 Maven 依赖项?