如何使用带有Logback的扩展SLF4J

时间:2016-06-13 07:32:15

标签: java logback slf4j

我们扩展了SLF4J的Logger API并创建了AppLogger界面。我们必须针对某些需要这样做,我在这里不能透露。现在,我们希望将此扩展记录器与 LogBack 框架一起使用。我无法找到任何机制如何使其工作。直接使用会引发ClassCastException(这很明显,因为它期望一个名为Logger且获得AppLogger的类。)

通过编写桥接实现并提供自定义Log4J 1.x类,我可以使此扩展接口与Log4J 2.xStaticBinder一起使用。对于LogBack,此桥类(StaticBinder)是logback-classic JAR文件的一部分,因此我不确定如何编写自己的绑定器并桥接LogBack。

AppLogger界面如下所示:

public interface AppLogger extends org.slf4j.Logger {
    public void myOwnMethod(String message, Object... args);
}

感谢是否有人提出任何想法。

1 个答案:

答案 0 :(得分:2)

最高版本1.7.15 SLF4J绑定机制曾经非常非常简单。在版本1.7.15之后,随着事件重放的引入,机制变得更加复杂,但核心绑定思想仍然很简单。此外,对于那些不能打扰的人,可以安全地省略对事件重播的任何支持。

有关slf4j绑定的示例,请参阅slf4j-nop或slf4j-simple模块中的代码。

但是,根据我收集的内容,您希望使用扩展的Logger API,在这种情况下,您应该查看slf4j-ext模块中的LoggerWrapperXLoggerXLoggerFactory类。您应该能够轻松地为AppLogger界面模拟相同的过程。