用于记录系统的桥梁

时间:2017-12-08 18:15:38

标签: java logging

我正在开发简单的Java事件库,我想支持多个日志记录系统。 我有一个使用自己的名为LoggerBridge的类的想法。

public void setLogger(LoggerBridge bridge){

}

public class LoggerBridge{

    public void log(Level, String){}

    ...

}

但是这个解决方案根本不实用,还有其他一些选择如何实现这个结果? 一些桥,它支持所有类型的日志系统?

1 个答案:

答案 0 :(得分:0)

这是一个古老的问题,并且制作了几个日志记录外观,允许您在例如库中记录内容,而不强迫用户使用您选择的相同日志框架(或尝试使多个日志记录框架很好地协同工作)

最早的一个是commons-logging,现在被认为是过时的,但是有很多旧的库使用它。它可以桥接到您的实际日志系统(见下文)。

较新的包括SLF4J。这些应该在您编写库时使用,因此您将编程为SLF4J API而不是实际的日志记录实现。

logging bridge就是当你有一个使用例如log4J的库时,你的其他代码正在使用SLF4JLogback(一种非常常见的组合) 。当它实际上只是将日志记录重定向到您的log4J组合时,该桥“伪造”为SLF4J+Logback库。