天天看點

logback日志架構logback使用步驟

logback

SpringBoot會預設使用logback作為日志架構。SpringBoot會預設加載classpath:logback.xml或者classpath:logback-spring.xml或者classpath:logback-spring.groovy等檔案作為日志配置檔案。

也可以在系統配置檔案中指定SpringBoot加載哪一個檔案作為日志配置檔案,在application.properties檔案中增加:logging.config=classpath:xxx.xml 即可指定xxx.xml為日志配置檔案。

 如果是SpringBoot的項目的話,直接把logback-spring.xml配置檔案放在src/main/resources檔案夾下即可

logback日志架構logback使用步驟

使用步驟

一、建構Springboot項目。spring-boot-starter-parent依賴中包括logback的相關依賴

二、建立logback-spring.xml檔案,放在src/main/resources檔案夾

application.properties

#logback.loghome=E:/log
logback.loghome=log
logback.logfile=logFile
logback.format=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}:%L- %msg%n
           

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd">

<configuration>
 
    <property resource="application.properties"/>
    <springProperty scope="context" name="log-dir" source="logback.loghome"/>
    <springProperty scope="context" name="log-name" source="logback.logfile"/>
    <springProperty scope="context" name="CONSOLE_LOG_PATTERN" source="logback.format"/>
     
    <!-- 控制台 -->
    <appender name="consoleAppender"
        class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 日志格式 -->
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <!-- 日志編碼 -->
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>
 
    <!-- 日志檔案 -->
    <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日志輸出位置 -->
        <file>${log-dir}/${log-name}.log</file>
        <!-- 滾動政策 政策會将過時的日志,另存到指定的檔案中(無該檔案則建立) -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 檔案的全路徑名模闆把因為 過時 或 過大  而拆分後的檔案也儲存到目啟動的目錄下的log檔案夾下  -->
            <fileNamePattern>${log-dir}/${log-name}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 儲存7天以内的日志檔案-->
            <MaxHistory>7</MaxHistory>
            <!-- 滾動政策 裡嵌套了一個SizeAndTimeBasedFNATP政策,在每天都會拆分日志的前提下,當天日志大于規定大小也進行拆分并以【%i】進行區分從0開始 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>3MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <!-- 日志輸出格式 -->
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <!-- 日志編碼 -->
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>

    <!--指定日志級别,日志級别有: trace|debug|info|warn|error|fatal-->
    <root level="info">
        <appender-ref ref="consoleAppender" />
        <appender-ref ref="fileAppender" />
    </root>
</configuration>
           

三、在項目中使用日志

@Controller
public class MyController {

	static final Logger log = LoggerFactory.getLogger(MyController .class);

	@RequestMapping(value = "/test")
	public String test() {
		log.info("11223344");
		log.error("22334455");
		return "hello world";
	}
}
           

可以使用@Slf4j簡化開發

@Controller
@Slf4j
public class MachineController {
	//static final Logger log = LoggerFactory.getLogger(MachineController.class);
	@RequestMapping(value = "/test")
	public String test() {
		log.info("11223344");
		log.error("22334455");
		return "hello world";
	}
}
           

繼續閱讀