Springboot默認(rèn)使用Logback作為日志框架實(shí)現(xiàn)
- 配置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```
其中l(wèi)ogging.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;
/**
* 啟動(dòng)加載數(shù)據(jù)
*/
@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() + "日志級(jí)別 Debug" + " DuckLoad 方法加載數(shù)據(jù)");
logger.info(this.getClass().getName() + "日志級(jí)別 Info" + " DuckLoad 方法加載數(shù)據(jù)");
logger.error(this.getClass().getName() + "日志級(jí)別 Error" + " DuckLoad 方法加載數(shù)據(jù)");
}
}```
3. 啟動(dòng)查看后臺(tái)日志

因?yàn)槲覀兌x的日志級(jí)別是INFO,所以類中的DEBUG級(jí)別是不輸出的,我們指輸出INFO以上的日志(INFO ERROR)
4. 查看文件生成地址

日志文件生成路徑在配置文件中l(wèi)ogging.path定義