如果第三方依赖项使用具体框架(例如log4j)进行日志记录,并且我希望我的应用程序通过slf4j进行所有日志记录,那么是否可以将log4j(在XML,属性文件等中)配置为将日志消息重定向到slf4j API? (在运行时,它将绑定到我选择的具体slf4j绑定。)
通过相同的API将所有日志消息发送到同一个地方会很好。
我甚至不介意我必须做一些一点疯狂的事情,比如将log4j.properties指向一些临时代码(我会写),然后将流量引导到slf4j!
我只是不知道从哪里开始。提前谢谢!
答案 0 :(得分:4)
当然你可以在documentation:
中彻底解释SLF4J附带一个名为
log4j-over-slf4j
的模块。它允许log4j用户将现有应用程序迁移到SLF4J,而无需更改单行代码,只需将log4j.jar文件替换为log4j-over-slf4j.jar
,如下所述。
这既是hacky又是巧妙的 - 您要移除log4j.jar
并将其替换为log4j-over-slf4j.jar
。后一个JAR将Log4J类镜像到相同的包中,因此您的应用程序和库甚至不必重新编译。但是新的实现只是重新路由到SLF4J。