研究了一个小时,大概知道门道了.
一般日志有按领域划分、还有分级的需求,文档不够详细,即使这么简单的配置,也踩了很多坑.以下是我的例子:
?xml version="1.0" encoding="UTF-8"?>
<configuration status="off" monitorInterval="30">
<Properties>
<Property name="LOG_HOME">/data/applogs/tomcat</Property>
</Properties>
<appenders>
<RollingRandomAccessFile name="RankerLog" fileName="${LOG_HOME}/ranker.log"
filePattern="${LOG_HOME}/ranker.log.%d{yyyy-MM-dd}">
<LevelRangeFilter minLevel="INFO" maxLevel="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %class{36} %L %M - %msg%xEx%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="AbsnormalLog" fileName="${LOG_HOME}/absnormal.log"
filePattern="${LOG_HOME}/absnormal.log.%d{yyyy-MM-dd}">
<LevelRangeFilter minLevel="FATAL" maxLevel="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %class{36} %L %M - %msg%xEx%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingRandomAccessFile>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</appenders>
<loggers>
<asyncRoot level="info">
<appender-ref ref="RankerLog"/>
<appender-ref ref="AbsnormalLog"/>
</asyncRoot>
</loggers>
</configuration>
参考:
https://www.cnblogs.com/hafiz/p/6170702.html
https://howtodoinjava.com/log4j2/log4j-2-xml-configuration-example/