配置logback.xml文件來實現日志文件輸出


一、logback的介紹

Logback是由log4j創始人設計的另一個開源日志組件,官方網站: http://logback.qos.ch。它當前分為下面下個模塊:

  • logback-core:其它兩個模塊的基礎模塊
  • logback-classic:它是log4j的一個改良版本,同時它完整實現了slf4j API使你可以很方便地更換成其它日志系統如log4j或JDK14 Logging
  • logback-access:訪問模塊與Servlet容器集成提供通過Http來訪問日志的功能

不多說直接上xml

logback.xml:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!-- 從高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->  
 3 <!-- 日志輸出規則 根據當前ROOT 級別,日志輸出時,級別高於root默認的級別時 會輸出 -->  
 4 <!-- 以下每個配置的 filter 是過濾掉輸出文件里面,會出現高級別文件,依然出現低級別的日志信息,通過filter 過濾只記錄本級別的日志-->
 5     
 6 <!-- 屬性描述 scan:性設置為true時,配置文件如果發生改變,將會被重新加載,默認值為true scanPeriod:設置監測配置文件是否有修改的時間間隔,  7 如果沒有給出時間單位,默認單位是毫秒。當scan為true時,此屬性生效。默認的時間間隔為1分鍾。 debug:當此屬性設置為true時,將打印出logback內部日志信息,  8 實時查看logback運行狀態。默認值為false。 -->    
 9 <configuration scan="true" scanPeriod="60 seconds" debug="false">
10     <!-- 定義參數常量 -->
11     <!-- logger.trace("msg" logger.debug... -->
12     <property name="log.level" value="debug"/>
13     <!-- 日志最大的歷史 30天 -->  
14     <property name="log.maxHistory" value="30"/>
15     <!-- 定義日志文件 輸入位置 -->  
16     <property name="log.filePath" value="${catalina.base}/logs/webapps"/>
17     <property name="log.pattern" 
18  value="%d{yyyy-MM-dd HH:mm:ss:SSS}[%thread]%-5level%logger{50}-%msg%n"/>
19     <!-- 控制台設置,控制台輸出日志-->
20     <apperder name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
21         <!-- 對日志進行格式化 -->  
22         <encoder>
23             <pattern>${log.pattern}</pattern>
24         </encoder>
25     </apperder>
26     <!-- DEBAUG 級別的日志 -->
27     <!-- 滾動記錄文件,先將日志記錄到指定文件,當符合某個條件時,將日志記錄到其他文件 RollingFileAppender-->  
28     <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
29         <!-- 文件路徑 -->
30         <file>${log.filePath}/debug.log</file>
31         <!-- 最常用的滾動策略,它根據時間來制定滾動策略.既負責滾動也負責出發滾動 -->  
32         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
33             <!-- 文件名稱 , 日志輸出位置 可相對、和絕對路徑 -->
34             <fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
35             <!-- 文件最大保存歷史數量 -->
36             <!-- 可選節點,控制保留的歸檔文件的最大數量,超出數量就刪除舊文件假設設置每個月滾動,且<maxHistory>是6, 37  則只保存最近6個月的文件,刪除之前的舊文件。注意,刪除舊文件是,那些為了歸檔而創建的目錄也會被刪除-->  
38             <maxHistory>${log.maxHistory}</maxHistory>
39         </rollingPolicy>
40         <encoder>
41             <pattern>${log.pattern}</pattern>
42         </encoder>
43          <!-- 過濾器,只記錄INFO級別的日志 -->  
44         <filter class="ch.qos.logback.classic.filter.LevelFilter">
45             <level>DEBUG</level>
46             <onMismatch>DENY</onMismatch>
47         </filter>
48     </appender>
49     <!-- INFO 級別的日志-->
50     <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
51         <!-- 文件路徑 -->
52         <file>${log.filePath}/info.log</file>
53         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
54             <!-- 文件名稱-->
55             <fileNamePattern>${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
56             <!-- 文件最大保存歷史數量 -->
57             <maxHistory>${log.maxHistory}</maxHistory>
58         </rollingPolicy>
59         <encoder>
60             <pattern>${log.pattern}</pattern>
61         </encoder>
62         
63         <filter class="ch.qos.logback.classic.filter.LevelFilter">
64             <level>INFO</level>
65             <onMismatch>DENY</onMismatch>
66         </filter>
67     </appender>
68     <!-- ERROR 級別的日志-->
69     <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
70         <!-- 文件路徑 -->
71         <file>${log.filePath}/error.log</file>
72         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
73             <!-- 文件名稱 -->
74             <fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
75             <!-- 文件最大保存歷史數量 -->
76             <maxHistory>${log.maxHistory}</maxHistory>
77         </rollingPolicy>
78         <encoder>
79             <pattern>${log.pattern}</pattern>
80         </encoder>
81         <filter class="ch.qos.logback.classic.filter.LevelFilter">
82             <level>ERROR</level>
83             <onMismatch>DENY</onMismatch>
84         </filter>
85     </appender>
86     <logger name="com.susu.o2o" level="${log.level}" additivity="true">
87         <!-- 文件輸出 -->  
88         <appender-ref ref="debugAppender"/>
89         <appender-ref ref="infoAppender"/>
90         <appender-ref ref="errorAppender"/>
91     </logger>
92      <!-- root級別 DEBUG -->  
93     <root level="info">
94         <!-- 控制台輸出 -->
95         <appender-ref ref="consoleAppender"/>
96     </root>
97 </configuration>

配置好了之后啟動tomcat服務器

找到這個文件地址,根據個人存放地址。

就有這三個文本了

 想詳細了解logback,推薦博客文章:

https://www.cnblogs.com/warking/p/5710303.html

https://www.cnblogs.com/gslyyq/p/5256789.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM