【发布时间】:2019-07-27 11:03:14
【问题描述】:
我创建了一个自定义附加程序,但在我运行测试时它没有被调用。属性如下所示:
name=config
appenders=console, myCustomAppender
appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
#appender.console.layout.pattern =%d{HH:mm:ss} [%t] %c{1} [%-5level] - %msg%n
appender.console.layout.pattern=%d{dd-MM-yyyy HH:mm:ss} [%-5p] (%F:%L) - %m%n
appender.myCustomAppender = com.myCompany.logging.log4j.WindowsEventLogAppender
appender.myCustomAppender.name = WindowsEventLogAppender
appender.myCustomAppender.type = WindowsEventLogAppender
rootLogger.level=info
rootLogger.appenderRefs=stdout, myCustomAppender
rootLogger.appenderRef.stdout.ref=STDOUT
我的附加程序称为 WindowsEventLogAppender。知道我的属性文件有什么问题吗?我看到控制台测试消息,但没有来自我的附加程序的消息。现在我只是在我的自定义 appender 中做一个 System.out.println 来验证它是否被调用。
顺便说一句,我发现很多 XML 示例都用于带有自定义附加程序的 log4j2 配置,但没有找到用于使用属性文件进行配置的 XML 示例。
谢谢, -迈克
【问题讨论】:
-
好吧,你为什么不选择加载xml呢?这是默认和推荐的方式。而且也很简单。不想听起来居高临下,只是一个意见
-
我确实让它与 XML 格式一起工作,但我们有很多使用 .properties 配置文件的组件。我认为保留 .properties 将是前进的最佳途径,因为我不必将一堆 .properties 文件转换为 XML。另外,它似乎应该可以正常工作?否则为什么要提供 .properties 方法。