排除web自带的logging,并引入log4j2依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
配置log4j2
resources/log4j2.xml
使用了分开存储的日志,info和error
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="info">
<Properties>
<!-- 声明日志文件存储的目录 -->
<Property name="LOG_HOME">C:\Users\user\Desktop\活动发布\活动发布平台_手机端_api\logs</Property>
<Property name="LOG_PATTERN"
value="%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread][%class{36}:%line] - %msg%n"></Property>
</Properties>
<Appenders>
<!--输出控制台的配置-->
<Console name="Console" target="SYSTEM_OUT">
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<!-- 输出日志的格式-->
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
<!-- INFO级别日志 -->
<RollingFile name="infoAppender" fileName="${LOG_HOME}/info.log"
filePattern="${LOG_HOME}/%d{yyyy-MM}/%d{yyyy-MM-dd}_info.log">
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100MB"/>
</Policies>
</RollingFile>
<!-- ERROR级别日志 -->
<RollingFile name="errorAppender" fileName="${LOG_HOME}/error.log"
filePattern="${LOG_HOME}/%d{yyyy-MM}/%d{yyyy-MM-dd}_error.log">
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100MB" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="infoAppender"/>
<AppenderRef ref="errorAppender"/>
</Root>
</Loggers>
</configuration>
指定log4j2
在application.yml/properties配置文件内指定
logging:
config: classpath:log4j2.xml
使用
创建log4j2实例
private final Logger logger = LogManager.getLogger(this.getClass());
使用即可
eg:
logger.info()
logger.warn()
logger.error()等