当前位置: 首页 > 知识库问答 >
问题:

AppenderSkeleton(Log4j2)

唐宇定
2023-03-14

我试图迁移一个扩展org.apache.log4j的类。AppenderSkeleton从旧版本的log4j到log4j 2,

在Log4j 2中忽略了使用该函数构造的附加器。

在班级网站上。

这是否意味着,如果我使用Log4j 2,我应该扩展这个类?如果是,我应该使用什么作为替代方案?ConsoleAppender会成功吗?

共有2个答案

詹杰
2023-03-14

David Lopez Carrasco对另一个问题的回答中提供了支持此处公认答案的代码。该代码应该通过清除测试和测试套件之间的日志列表来补充(否则附加程序将保留来自以前记录器的消息)。

我会把它作为评论添加,但我没有足够的声誉来评论。

蔡鹏程
2023-03-14

Log4j 2中的Appender实现Appender接口。大多数appender将扩展AbstractAppender、AbstractOutputStreamAppender或AbstractWriterAppender。Log4j 2使用插件,这意味着您的appender必须用@Plugin注释并html" target="_blank">定义为appender。Appender还需要一个带有@PluginBuilderFactory注释的生成器来从其配置创建Appender实例。您可以查看任何Log4j的appender,例如FileAppender。

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

 类似资料:
  • 问题内容: 我习惯在普通的log4j上使用。现在,我切换到,无法使附加程序正常工作。 下面的附加程序可以正常工作。但是永远不会创建的日志文件。为什么? 问题答案: 该标记缺少属性。

  • 问题内容: 我对Maven不太熟悉,我昨天才开始使用它,但是我喜欢它。在我的项目中,我使用 Log4j2 库进行日志记录,并且由于高级插件(如追加程序,转换器)的不足, 我需要使用自定义插件 。和(还有许多其他库)作为依赖项添加到与我的项目关联的 pom.xml 中。实际上,我正在使用Log4j的2.0版。 Log4j使用注释处理来预加载标记为的类。据我所知,在较旧的log4j版本中,必须在 po

  • 问题内容: 我想使用新的Log4J 2-Java Logging Framework。一切正常,但是一个小时以来,我尝试加载一个自定义配置文件来配置日志记录(如日志级别)。 这是我的log4j2.xml: 我尝试了以下方法,但没有任何效果: 移动log4j2.xml文件,使其位于默认软件包中。 将log4j2.xml文件移动到项目中的任何位置 将log4j2.xml文件命名为“ log4j.xml

  • 问题内容: 我试图每小时创建一个新的日志文件。我在RollingFileAppender中使用lo4j2的TimeBasedTriggerringPolicy。以下是我从log4j2官方站点获取的示例xml配置代码。 在时间间隔属性中,我设置了1表示1小时。但是我的文件仍然不会每1小时滚动一次。 请帮助我发现任何错误。 注意:我包括了log4j2的beta9(这是最新的) 问题答案: 这里的1表示

  • 问题内容: 我有从maven log4j2运行时可以运行的应用程序: 但是当我将jar作为独立应用程序运行时,它显示错误: 日志: 我不明白这个错误。它显示未找到log4j2配置文件,但还抱怨配置文件中可能存在某种格式 我的配置是: 它位于jar文件的根目录中。 更新 jar由maven shade插件创建: 因此它包含所有必需的库(大约23 MB),当我运行这个jar时,我只需要指定参数 问题答

  • 问题内容: 我已经将我的log4j2自定义插件打包到一个单独的jar中(仅包含插件类),并将其放在应用程序类路径中。但是不会被检测到。 我用谷歌搜索发现它是一个错误-“ packages”参数不再使用。还有一些链接建议了一些替代方案,其中将maven pom.xml和log4j2插件dat文件放入上下文中。问题是我不熟悉Maven,并且不知道如何生成dat文件。我只知道它包含在log4j-2.1-