Springboot 日誌管理配置logback-spring.xml

幾種常見的日誌

  1. Log4j:是最先的日誌框架,是apach旗下的,能夠單獨使用,也可配合日誌框架JCL使用;
  2. Log4j2:apach旗下的關於log4j的升級版;
  3. Logback:是基於slf4j接口實現的一套日誌框架組件;(Logback是由log4j創始人設計的又一個開源日誌組件。)
  4. JUL(java utillog):仿log4j實現的日誌框架,是sun旗下的,(也就是在咱們廣泛使用的jdk中);
  5. Commons loggin:是一套日誌接口(apache);
  6. Slf4j:也是一套日誌接口; 

              Commons Logging和Slf4j是日誌門面(門面模式是軟件工程中經常使用的一種軟件設計模式,也被稱爲正面模式、外觀模式。它爲子系統中的一組接口提供一個統一的高層接          口,使          得子系統更容易使用)。log4j和Logback則是具體的日誌實現方案。能夠簡單的理解爲接口與接口的實現,調用這隻須要關注接口而無需關注具體的實現,作到解耦;
   比較經常使用的組合使用方式是Slf4j與Logback組合使用,Commons Logging與Log4j組合使用。java

     下面是Slf4j與Logback使用:spring

Springboot 日誌管理配置logback-spring.xml

(1).application.yml配置

1 # 日誌目錄
2 logging:
3   path: home/logs/
4   file: ${logging.path}springboot

(2).logback-spring.xml配置

 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>

(3).生成日誌

Slf4j使用

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");
相關文章
相關標籤/搜索