附加器 backbone (Log4j2)

nwo49xxi  于 2022-11-06  发布在  其他
关注(0)|答案(2)|浏览(186)

我正在尝试将一个扩展org.apache.log4j.AppenderSkeleton的类从旧版本的log4j迁移到log4j 2。我正在阅读该类的JavaDoc,我读到了,
在Log4j 2中忽略使用此构造的追加器。
在课程网站上。
这是否意味着,如果我正在使用Log4j 2,我应该扩展这个类?如果是,我应该使用什么作为替代?ConsoleAppender是否可以做到这一点?

clj7thdc

clj7thdc1#

Log4j 2中的附加器实现了Appender接口。大多数附加器将扩展AbstractAppenderAbstractOutputStreamAppenderAbstractWriterAppender。Log4j 2使用插件,这意味着您的Appender必须使用@Plugin进行注解并定义为Appender。Appender还需要一个使用@PluginBuilderFactory进行注解的Builder,以便从其配置创建Appender示例。您可以查看Log4j'的附加器,例如FileAppender
您也会注意到,大部分的“附加器”都使用“管理员”来执行大部分的工作。这是因为“附加器”一定会在重新设定组态期间重新建立,而这可能会导致问题。只有在“管理员”的特定属性变更时,才会重新建立“管理员”,否则新的“附加器”执行行程会重复使用先前的“管理员”。

xytpbqjk

xytpbqjk2#

answer by David Lopez Carrasco to another question中提供了支持此处可接受答案的代码。应通过清除测试和测试套件之间的日志列表来补充此代码(否则,附加器将保留来自先前日志记录器的消息)。

相关问题