Springboot默认使用Logback作为日志框架实现
- 配置logback.xml
<include resource="org/springframework/boot/logging/logback/base.xml" />
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/info.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/info-%d{yyyyMMdd}.log.%i</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>2</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</layout>
</appender>
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<File>${LOG_PATH}/error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/error-%d{yyyyMMdd}.log.%i
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>2</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</layout>
</appender>
<root level="INFO">
<appender-ref ref="INFO_FILE" />
<appender-ref ref="ERROR_FILE" />
</root>
<logger name="org.springframework.boot" level="DEBUG"/>
</configuration>```
2. 配置application.properties
```#logback日志配置
logging.config=classpath:logback.xml
logging.path=D:/logFile```
其中logging.path定义的是logback.xml中${LOG_PATH}
3. 在类中定义log
```package com.duck.load;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* 启动加载数据
*/
@Component
@Order(value = 1)
public class DuckLoad implements CommandLineRunner{
private static final Logger logger = LoggerFactory.getLogger(DuckLoad.class);
public void run(String... args){
logger.debug(this.getClass().getName() + "日志级别 Debug" + " DuckLoad 方法加载数据");
logger.info(this.getClass().getName() + "日志级别 Info" + " DuckLoad 方法加载数据");
logger.error(this.getClass().getName() + "日志级别 Error" + " DuckLoad 方法加载数据");
}
}```
3. 启动查看后台日志

因为我们定义的日志级别是INFO,所以类中的DEBUG级别是不输出的,我们指输出INFO以上的日志(INFO ERROR)
4. 查看文件生成地址

日志文件生成路径在配置文件中logging.path定义