slfj4 + logback

slf4j:(Simple Logging Facade for Java,簡單日誌門面),它不是具體的日誌解決方案,只服務於各類各樣的日誌系統。在使用SLF4J的時候,不須要再代碼中或配置文件中指定使用的那個具體的日誌系統。api

logback:是由log4j創始人設計的一個開源日誌組件。logback當前分紅三個模塊:logback-core,logback-classic和logback-access。logback-core是其餘兩個模塊的基礎。logback-classic是log4j的一個改良版本。app

使用步驟:spa

一、引入slf4j以及logback依賴debug

 1 <dependencies>
 2     <dependency>
 3         <groupId>org.slf4j</groupId>
 4         <artifactId>slf4j-api</artifactId>
 5         <version>1.7.22</version>
 6     </dependency>
 7     <dependency>
 8         <groupId>ch.qos.logback</groupId>
 9         <artifactId>logback-classic</artifactId>
10         <version>1.1.6</version>
11     </dependency>
12 </dependencies>

二、classpath中編寫logback的配置文件logback.xml,將logback.xml文件放在/src/main/resources/路徑中設計

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!-- scan:當此屬性設置爲true時,配置文件若是發生改變,將會被從新加載,默認值爲true。 
 3      scanPeriod:設置監測配置文件是否有修改的時間間隔,若是沒有給出時間單位,默認單位是毫秒。當scan爲true時,此屬性生效。默認的時間間隔爲1分鐘。
 4      debug:當此屬性設置爲true時,將打印出logback內部日誌信息,實時查看logback運行狀態。默認值爲false。 -->
 5 <configuration scan="true" scanPeriod="60 seconds" debug="false">
 6 
 7     <!-- 上下文變量設置,用來定義變量值,其中name的值是變量的名稱,value的值時變量定義的值。
 8         經過<property>定義的值會被插入到logger上下文中。定義變量後,能夠使「${}」來使用變量。 -->
 9     <property name="CONTEXT_NAME" value="logback-test" />
10 
11     <!-- 上下文名稱:<contextName>, 每一個logger都關聯到logger上下文,
12         默認上下文名稱爲「default」。但能夠使用<contextName>設置成其餘名字,用於區分不一樣應用程序的記錄。
13         一旦設置,不能修改。 -->
14     <contextName>${CONTEXT_NAME}</contextName>
15 
16     <!-- <appender>是<configuration>的子節點,是負責寫日誌的組件。
17         有兩個必要屬性name和class。
18         name指定appender名稱,
19         class指定appender的實現類。 -->
20     <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
21         <!-- 對日誌進行格式化。 -->
22         <encoder>
23             <pattern>
24                 %d{yyyy-MM-dd HH:mm:ss.SSS}|%level|%class|%thread|%method|%line|%msg%n
25             </pattern>
26         </encoder>
27     </appender>
28 
29     <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
30         <!-- 被寫入的文件名,能夠是相對目錄,也能夠是絕對目錄,若是上級目錄不存在會自動建立,沒有默認值。 -->
31         <file>${logs.dir}/logback-test.log</file>
32 
33         <!-- 當發生滾動時的行爲  -->
34         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
35             <!-- 必須包含「%i」例如,假設最小值和最大值分別爲1和2,命名模式爲 mylog%i.log,會產生歸檔文件mylog1.log和mylog2.log。還能夠指定文件壓縮選項,例如,mylog%i.log.gz 或者 沒有log%i.log.zip -->
36             <FileNamePattern>${logs.dir}/logback-test.%i.log</FileNamePattern>
37             <!-- 窗口索引最小值 -->
38             <minIndex>1</minIndex>
39             <!-- 窗口索引最大值 -->
40             <maxIndex>1</maxIndex>
41         </rollingPolicy>
42 
43         <!-- 激活滾動的條件。 -->
44         <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
45             <!-- 活動文件的大小,默認值是10MB -->
46             <maxFileSize>30MB</maxFileSize>
47         </triggeringPolicy>
48 
49         <!-- 對記錄事件進行格式化。 -->
50         <encoder>
51             <charset>UTF-8</charset>
52             <Pattern>
53                 %d{yyyy-MM-dd HH:mm:ss.SSS}|%level|%class|%thread|%method|%line|%msg%n
54             </Pattern>
55         </encoder>
56     </appender>
57 
58     <!-- 特殊的<logger>元素,是根logger。只有一個level屬性,應爲已經被命名爲"root".
59         level:設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能設置爲INHERITED或者同義詞NULL。默認是DEBUG。
60         <root>能夠包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個loger。 -->
61     <root>
62         <level value="WARN" />
63         <appender-ref ref="stdout" />
64         <appender-ref ref="file" />
65     </root>
66 
67     <!-- 用來設置某一個 包 或者具體的某一個 類 的日誌打印級別、以及指定<appender>, 
68         name:用來指定受此logger約束的某一個包或者具體的某一個類。
69         level:用來設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,還有一個特俗值INHERITED或者同義詞NULL,表明強制執行上級的級別。若是未設置此屬性,那麼當前loger將會繼承上級的級別。 
70         additivity:是否向上級logger傳遞打印信息。默認是true。(這個logger的上級就是上面的root)
71         <logger>能夠包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個logger。-->
72     <logger name="xuyihao.logback.test" level="DEBUG" additivity="true"></logger>
73 
74 </configuration>
相關文章
相關標籤/搜索