1、maven加载依赖
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
</dependency>
2、配置log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<property name="basePath">./Log/log4j2</property>
<property name="console_log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %l - %m%n</property>
<property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %C.%M[%L line] - %m%n</property>
<property name="every_file_size">10MB</property>
<property name="output_log_level">DEBUG</property>
<property name="rolling_fileName">${basePath}/all.log</property>
<property name="rolling_filePattern">${basePath}/all-%d{yyyy-MM-dd}-%i.log.gz</property>
<property name="rolling_max">7</property>
<property name="rolling_timeInterval">1</property>
<property name="rolling_timeModulate">true</property>
<property name="info_fileName">${basePath}/info.log</property>
<property name="info_filePattern">${basePath}/info-%d{yyyy-MM-dd}-%i.log.gz</property>
<property name="info_max">7</property>
<property name="info_timeInterval">1</property>
<property name="info_timeModulate">true</property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${console_log_pattern}"/>
</Console>
<RollingFile name="RollingFile" fileName="${rolling_fileName}" filePattern="${rolling_filePattern}">
<PatternLayout pattern="${log_pattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="${rolling_timeInterval}" modulate="${rolling_timeModulate}"/>
<SizeBasedTriggeringPolicy size="${every_file_size}"/>
</Policies>
<DefaultRolloverStrategy max="${rolling_max}" />
</RollingFile>
<RollingFile name="InfoFile" fileName="${info_fileName}" filePattern="${info_filePattern}">
<PatternLayout pattern="${log_pattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="${info_timeInterval}" modulate="${info_timeModulate}"/>
<SizeBasedTriggeringPolicy size="${every_file_size}"/>
</Policies>
<DefaultRolloverStrategy max="${info_max}" />
<Filters>
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com" level="${output_log_level}"/>
<Root level="debug">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile"/>
<AppenderRef ref="InfoFile"/>
</Root>
</Loggers>
</Configuration>