private static final Logger log = LogManager.getLogger(ABC.class);
private static final Logger resultLog = LogManager.getLogger("ResultLog");
我们如何定义一个只记录特定于“ResultLog”记录器的附加程序?
我当前的 Log4j2.xml 文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="ABC" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/ABC.log"
filePattern="logs/$${date:yyyy-MM}/ABC-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d [%t] %p %c{1.} %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingFile>
<File name="resultFile" fileName="logs/result.log">
<PatternLayout pattern="%m%n"/>
</File>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d [%t] %p %c{1.} %m%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="RollingFile"/>
<AppenderRef ref="Console"/>
<AppenderRef ref="resultFile"/>
</Root>
</Loggers>
</Configuration>
谢谢
最佳答案
添加
<Logger name="ResultLog">
<AppenderRef ...>
</Logger>
到 Loggers 标签。
您可以引用这个手册:https://logging.apache.org/log4j/2.x/manual/configuration.html#XML
关于java - 如何仅定义 Log4j2 appender 日志记录特定的命名记录器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255753/