我们扩展了SLF4J的Logger
API并创建了AppLogger
界面。我们必须针对某些需要这样做,我在这里不能透露。现在,我们希望将此扩展记录器与 LogBack 框架一起使用。我无法找到任何机制如何使其工作。直接使用会引发ClassCastException
(这很明显,因为它期望一个名为Logger
且获得AppLogger
的类。)
通过编写桥接实现并提供自定义Log4J 1.x
类,我可以使此扩展接口与Log4J 2.x
和StaticBinder
一起使用。对于LogBack,此桥类(StaticBinder
)是logback-classic
JAR文件的一部分,因此我不确定如何编写自己的绑定器并桥接LogBack。
AppLogger
界面如下所示:
public interface AppLogger extends org.slf4j.Logger {
public void myOwnMethod(String message, Object... args);
}
感谢是否有人提出任何想法。
答案 0 :(得分:2)
最高版本1.7.15 SLF4J绑定机制曾经非常非常简单。在版本1.7.15之后,随着事件重放的引入,机制变得更加复杂,但核心绑定思想仍然很简单。此外,对于那些不能打扰的人,可以安全地省略对事件重播的任何支持。
有关slf4j绑定的示例,请参阅slf4j-nop或slf4j-simple模块中的代码。
但是,根据我收集的内容,您希望使用扩展的Logger API,在这种情况下,您应该查看slf4j-ext模块中的LoggerWrapper
,XLogger
和XLoggerFactory
类。您应该能够轻松地为AppLogger
界面模拟相同的过程。