1. 程式人生 > >springboot中logback日誌常用配置,包含日誌切割

springboot中logback日誌常用配置,包含日誌切割

新增依賴:

       <!--監控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

actuator是用來做監控的,包含了logbak依賴:

具體配置如下:

  1. bootstrap.yml檔案中配置:
spring:
  application:
    name: yourAppName
  1. 在同一目錄下新建一個logback-spring.xml檔案:
<?xml version="1.0" encoding="UTF-8"?>

<configuration debug="false" scan="false">
    <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue="pig"/>
    <property name="log.path" value="logs/${spring.application.name}" />
    <!-- Console log output -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level [%logger{50}] - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Log file debug output -->
    <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/debug.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/%d{yyyy-MM}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxFileSize>50MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Log file error output -->
    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxFileSize>50MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
    </appender>

    <!-- Level: FATAL 0  ERROR 3  WARN 4  INFO 6  DEBUG 7 -->
    <root level="INFO">
        <appender-ref ref="console" />
        <appender-ref ref="debug" />
        <appender-ref ref="error" />
    </root>
</configuration>

配置程式碼分別是三個級別的日誌輸出,即控制檯輸出、debug檔案全日誌輸出和error錯誤檔案日誌輸出,其中debug和error日誌輸出做了日誌滾動策略,也就是我們通常所說的日誌切割,每天產生一個日誌檔案,日誌檔案最大50MB,最長保留30天日誌。

  • root:上面配置表示日誌級別>=info的,參與上面的日誌輸出。level用來設定列印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,不能設定為INHERITED或者同義詞NULL。 預設是DEBUG。
  • rollingPolicy:設定了日誌滾動策略,其中fileNamePattern設定了命名規範,maxFileSize表示日誌檔案最大為多少,maxHistory表示設定檔案最大儲存時間。
  • encoder:日誌輸出格式。
  • file:表示輸出的日誌檔名稱。
  • filter :過濾輸出日誌級別