依赖
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.3.6</version>
</dependency>
log4j2.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %c{2}(%F:%L) - %m%n"/>
</Console>
<RollingFile name="fixedTimeFileAppender" fileName="./app.log"
filePattern="./app.%d{yyyy-MM-dd_HH}-%i.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %c{2}(%F:%L) - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="500 MB"/>
</Policies>
<DefaultRolloverStrategy max="24"/>
</RollingFile>
<RollingFile name="subFixedTimeFileAppender"
fileName="./sub-log.log"
filePattern="./sub-log.log.%d{yyyy-MM-dd_HH}-%i.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %c{2}(%F:%L) - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="500 MB"/>
</Policies>
<DefaultRolloverStrategy max="24"/>
</RollingFile>
</Appenders>
<Loggers>
<!-- 特定日志 info 日志打指定文件 -->
<AsyncLogger name="subLogger" level="info" additivity="false" includeLocation="true">
<AppenderRef ref="subFixedTimeFileAppender"/>
</AsyncLogger>
<!-- 所有info 日志打文件
<AsyncRoot level="info" includeLocation="true">
<AppenderRef ref="fixedTimeFileAppender"/>
</AsyncRoot>-->
<root level="info" includeLocation="true">
<appender-ref ref="console"/>
</root>
</Loggers>
</Configuration>
代码中使用:
//正常使用,日志打app.log文件
private static final Logger LOGGER = LoggerFactory.getLogger(xxx.class);
//打sub-log.log文件
private static final Logger LOGGER = LoggerFactory.getLogger("subLogger");