logging - 如何在Log4j2中追加多个追加器引用?

标签 logging log4j log4j2

我知道在log4j中,您可以通过执行类似以下操作来使用多个追加程序:

log4j.logger.com.x=DEBUG, append1, append2

但是等价于log4j2呢?

会是这样吗?
logger.com.x.level = DEBUG
logger.com.x.appenderRefs = append1, append2

最佳答案

您没有在示例中提供追加器append1和append2的类型,但是在使用属性文件时,这一点很重要。假设附加器的定义如下:

appender.console.type = Console
appender.console.name = append1
...
appender.rolling.type = RollingFile
appender.rolling.name = append2
...

记录器应该是这样的:
logger.console.name = com.x
logger.console.level = debug
logger.console.additivity = false
logger.console.appenderRef.console.ref = append1

logger.rolling.name = com.x
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = append2

我建议根据manual中的属性文件配置示例进行此配置。我没有这样做,而是更喜欢xml格式。我建议您考虑转移到xml格式。 log4j2文档中的大多数示例都是针对xml配置格式的。
对于xml,记录器的配置非常紧凑,如下所示:
<Loggers>
    <Logger name="com.x" level="debug" additivity="false">
        <appenderRef ref="append1" />
        <appenderRef ref="append2" />
    </Logger>
    ...
</Loggers>

关于logging - 如何在Log4j2中追加多个追加器引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39650949/

相关文章:

c - 如何在日志文件中引入日期和时间

java - 是否可以将 log4j 配置为在每次运行应用程序时创建一个新文件?

Grails - grails.config.locations 不适用于类路径和 .properties 文件

tomcat - Log4j2:如何将日志写入WEB-INF 内的文件夹?

java - 如何清除 Log4j 2.3 每日滚动文件附加器的日志

linux - docker journald 日志记录驱动程序也会导致大量日志记录到/var/log/syslog 和/var/log/kern.log

c# - 日志记录仅在本地有效,但在部署到 Microsoft Azure 应用服务时无效

java - 异常和记录器中的不同堆栈跟踪格式

java - 无法在java中创建日志文件

java - Log4j 找不到 appender,但它们存在