【发布时间】:2020-08-04 16:57:37
【问题描述】:
在我的 log4j2 配置中,我将 AsyncRoot 设置为 INFO,因为我想在文件中记录此级别和更高级别。
但我也想将 ERROR 级别记录到特定文件中,并在 AsyncRoot
中配置的附加程序中这是我的配置:
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
<Appenders>
<RollingFile name="file" fileName="${LOG_PATH}/${APP_NAME}.log" filePattern="${LOG_PATH}/${APP_NAME}-${FILE_PATTERN_TRAILER}.log">
<PatternLayout pattern="${PATTERN_LAYOUT}"/>
<Policies>
<SizeBasedTriggeringPolicy size="50 MB"/>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy max="5"/>
</RollingFile>
<RollingFile name="errorFile" fileName="${LOG_PATH}/${APP_NAME}-errors.log" filePattern="${LOG_PATH}/${APP_NAME}-errors-${FILE_PATTERN_TRAILER}.log">
<PatternLayout pattern="${PATTERN_LAYOUT}"/>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<AsyncRoot level="INFO">
<AppenderRef ref="file"/>
</AsyncRoot>
<AsyncLogger level="ERROR">
<AppenderRef ref="errorFile"/>
</AsyncLogger>
</Loggers>
</Configuration>
这是我想要实现的日志记录行为(无论包):
- INFO 日志级别的所有日志都记录到 appender 文件
- 所有具有 ERROR 日志级别的日志都记录到 appender file 和 errorFile
- 根本不记录所有具有较低日志级别(DEBUG、TRACE)的日志
谢谢
【问题讨论】:
标签: log4j2