我正在开发简单的Java事件库,我想支持多个日志记录系统。 我有一个使用自己的名为LoggerBridge的类的想法。
public void setLogger(LoggerBridge bridge){
}
public class LoggerBridge{
public void log(Level, String){}
...
}
但是这个解决方案根本不实用,还有其他一些选择如何实现这个结果? 一些桥,它支持所有类型的日志系统?
答案 0 :(得分:0)
这是一个古老的问题,并且制作了几个日志记录外观,允许您在例如库中记录内容,而不强迫用户使用您选择的相同日志框架(或尝试使多个日志记录框架很好地协同工作)
最早的一个是commons-logging,现在被认为是过时的,但是有很多旧的库使用它。它可以桥接到您的实际日志系统(见下文)。
较新的包括SLF4J。这些应该在您编写库时使用,因此您将编程为SLF4J API而不是实际的日志记录实现。
logging bridge就是当你有一个使用例如log4J
的库时,你的其他代码正在使用SLF4J
和Logback(一种非常常见的组合) 。当它实际上只是将日志记录重定向到您的log4J
组合时,该桥“伪造”为SLF4J+Logback
库。