【SpringBoot】在SpringBoot中整合紀錄檔收集

2020-11-13 14:01:03

效果圖

在這裡插入圖片描述

紀錄檔框架選擇

在這裡插入圖片描述

Springboot 紀錄檔管理設定logback-spring.xml

application.yml設定

spring:
  application:
    name: bennyrhys
logging:
  file:
    name: ./logs/${spring.application.name}.log

logback-spring.xml

<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />

    <!-- file -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <File>${LOG_FILE}</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}</fileNamePattern>
            <maxHistory>${LOG_FILE_MAX_HISTORY:-7}</maxHistory>
        </rollingPolicy>
    </appender>

    <root level="INFO">
        <springProfile name="!prod">
            <appender-ref ref="CONSOLE" />
        </springProfile>
        <appender-ref ref="FILE" />
    </root>
</configuration>

參考設定

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!-- 紀錄檔級別從低到高分為TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果設定為WARN,則低於WARN的資訊都不會輸出 -->
 3 <!-- scan:當此屬性設定為true時,設定檔案如果發生改變,將會被重新載入,預設值為true -->
 4 <!-- scanPeriod:設定監測設定檔案是否有修改的時間間隔,如果沒有給出時間單位,預設單位是毫秒。
 5                  當scan為true時,此屬性生效。預設的時間間隔為1分鐘。 -->
 6 <!-- debug:當此屬性設定為true時,將列印出logback內部紀錄檔資訊,實時檢視logback執行狀態。預設值為false。 -->
 7 
 8 <configuration debug="true">
 9     <!-- name的值是變數的名稱,value的值時變數定義的值。通過定義的值會被插入到logger上下文中。定義後,可以使「${}」來使用變數。 -->
10     <!--<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>-->
11     <property name="LOG_FILE" value="${LOG_FILE}"/>
12 
13     <!--1. 輸出到控制檯-->
14     <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
15         <encoder>
16             <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} [%line] - %msg%n</pattern>
17         </encoder>
18     </appender>
19 
20     <!--2. 輸出到檔案-->
21     <!-- 2.1 level為 DEBUG 紀錄檔,時間捲動輸出  -->
22     <appender name="R" class="ch.qos.logback.core.rolling.RollingFileAppender">
23         <!-- 正在記錄的紀錄檔檔案的路徑及檔名 -->
24         <!--<File>${LOG_FILE}</File>-->
25         <!--紀錄檔檔案輸出格式-->
26         <encoder>
27             <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} [%line] - %msg%n</pattern>
28         </encoder>
29         <!-- 紀錄檔記錄器的捲動策略,按日期,按大小記錄 -->
30         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
31             <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log
32             </fileNamePattern>
33             <maxHistory>15</maxHistory>
34         </rollingPolicy>
35     </appender>
36 
37     <logger name="noModule" level="info"/>
38     <logger name="org.codehaus" level="info"/>
39     <logger name="org.apache" level="info"/>
40     <logger name="org.springframework" level="info"/>
41     <logger name="druid.sql" level="info"/>
42     <logger name="com.alibaba" level="debug">
43         <appender-ref ref="stdout"/>
44     </logger>
45     <logger name="com.springboot" level="debug"/>
46     <root level="info">
47         <appender-ref ref="stdout"/>
48         <appender-ref ref="R"/>
49     </root>
50 </configuration>

方法呼叫

1 (1) public final class InStockController {
2  
3      private static final Logger logger= LoggerFactory.getLogger(InStockController.class);
4  }
5  
6 
7  
8 (2)  方法中
9   logger.info("xxxxxxxx");
瑞 新 CSDN認證部落格專家 分散式 Java 架構
求職中 • Java全棧養成計劃
公眾號 • 讓我遇見相似的靈魂
回覆領取:競賽 書籍 專案 面試

左手程式碼,右手吉他,這就是天下:如果有一天我遇見相似的靈魂 那它肯定是步履艱難 不被理解 喜黑怕光的。如果可以的話 讓我觸控一下吧 它也一樣孤獨得太久。 不一樣的文藝青年,不一樣的程式猿。