AppenderSkeleton (Log4j2)

hel*_*004 12 java log4j log4j2

我正在尝试将一个从旧版本的 log4j 扩展org.apache.log4j.AppenderSkeleton到 log4j 2 的类。我正在阅读该类的 JavaDoc,我读到了,

使用此构造的 Appender 在 Log4j 2 中被忽略。

在该课程的网站上。

这是否意味着,如果我使用 Log4j 2,我应该扩展这个类?如果是,我应该使用什么作为替代方案?ConsoleAppender 能解决这个问题吗?

rgo*_*ers 6

Log4j 2 中的 Appender 实现了 Appender 接口。大多数 Appender 将扩展AbstractAppenderAbstractOutputStreamAppenderAbstractWriterAppender。Log4j 2 使用插件,这意味着您的 Appender 必须使用 @Plugin 进行注释并定义为 Appender。Appender 还需要一个使用 @PluginBuilderFactory 注释的 Builder 来从其配置创建 Appender 实例。您可以查看 Log4j 的任何 Appender,例如FileAppender

您还会注意到,大多数 Appender 使用 Manager 来执行大部分工作。这是因为在重新配置期间总是会重新创建 Appender,这可能会导致问题。仅当特定于该 Manager 的属性发生更改时才会重新创建 Manager,否则新的 Appender 实例将重用以前的 Manager。

  • 谢谢(你的)信息。插件?这对我来说是新事物。有没有什么例子可以看看? (2认同)