Logback配置解析

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!--  
  3. -scan:當此屬性設置爲true時,配置文件如果發生改變,將會被重新加載,默認值爲true  
  4. -scanPeriod:設置監測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。  
  5. -           當scan爲true時,此屬性生效。默認的時間間隔爲1分鐘  
  6. -debug:當此屬性設置爲true時,將打印出logback內部日誌信息,實時查看logback運行狀態。默認值爲false。  
  7. -  
  8. - configuration 子節點爲 appender、logger、root  
  9. -->  
  10. <configuration scan="true" scanPeriod="60 second" debug="false">  
  11.   
  12.     <!-- 負責寫日誌,控制檯日誌 -->  
  13.     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  
  14.   
  15.         <!-- 一是把日誌信息轉換成字節數組,二是把字節數組寫入到輸出流 -->  
  16.         <encoder>  
  17.             <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern>  
  18.             <charset>UTF-8</charset>  
  19.         </encoder>  
  20.     </appender>  
  21.   
  22.     <!-- 文件日誌 -->  
  23.     <appender name="DEBUG" class="ch.qos.logback.core.FileAppender">  
  24.         <file>debug.log</file>  
  25.         <!-- append: true,日誌被追加到文件結尾; false,清空現存文件;默認是true -->  
  26.         <append>true</append>  
  27.         <filter class="ch.qos.logback.classic.filter.LevelFilter">  
  28.             <!-- LevelFilter: 級別過濾器,根據日誌級別進行過濾 -->  
  29.             <level>DEBUG</level>  
  30.             <onMatch>ACCEPT</onMatch>  
  31.             <onMismatch>DENY</onMismatch>  
  32.         </filter>  
  33.         <encoder>  
  34.             <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern>  
  35.             <charset>UTF-8</charset>  
  36.         </encoder>  
  37.     </appender>  
  38.   
  39.     <!-- 滾動記錄文件,先將日誌記錄到指定文件,當符合某個條件時,將日誌記錄到其他文件 -->  
  40.     <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  41.         <File>info.log</File>  
  42.   
  43.         <!-- ThresholdFilter:臨界值過濾器,過濾掉 TRACE 和 DEBUG 級別的日誌 -->  
  44.         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">  
  45.             <level>INFO</level>  
  46.         </filter>  
  47.   
  48.         <encoder>  
  49.             <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern>  
  50.             <charset>UTF-8</charset>  
  51.         </encoder>  
  52.   
  53.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
  54.             <!-- 每天生成一個日誌文件,保存30天的日誌文件  
  55.             - 如果隔一段時間沒有輸出日誌,前面過期的日誌不會被刪除,只有再重新打印日誌的時候,會觸發刪除過期日誌的操作。  
  56.             -->  
  57.             <fileNamePattern>info.%d{yyyy-MM-dd}.log</fileNamePattern>  
  58.             <maxHistory>30</maxHistory>  
  59.             <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
  60.                 <maxFileSize>100MB</maxFileSize>  
  61.             </TimeBasedFileNamingAndTriggeringPolicy>  
  62.         </rollingPolicy>  
  63.     </appender >  
  64.   
  65.     <!--<!– 異常日誌輸出 –>-->  
  66.     <!--<appender name="EXCEPTION" class="ch.qos.logback.core.rolling.RollingFileAppender">-->  
  67.         <!--<file>exception.log</file>-->  
  68.         <!--<!– 求值過濾器,評估、鑑別日誌是否符合指定條件. 需要額外的兩個JAR包,commons-compiler.jar和janino.jar –>-->  
  69.         <!--<filter class="ch.qos.logback.core.filter.EvaluatorFilter">-->  
  70.             <!--<!– 默認爲 ch.qos.logback.classic.boolex.JaninoEventEvaluator –>-->  
  71.             <!--<evaluator>-->  
  72.                 <!--<!– 過濾掉所有日誌消息中不包含"Exception"字符串的日誌 –>-->  
  73.                 <!--<expression>return message.contains("Exception");</expression>-->  
  74.             <!--</evaluator>-->  
  75.             <!--<OnMatch>ACCEPT</OnMatch>-->  
  76.             <!--<OnMismatch>DENY</OnMismatch>-->  
  77.         <!--</filter>-->  
  78.   
  79.         <!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->  
  80.             <!--<!– 觸發節點,按固定文件大小生成,超過5M,生成新的日誌文件 –>-->  
  81.             <!--<maxFileSize>5MB</maxFileSize>-->  
  82.         <!--</triggeringPolicy>-->  
  83.     <!--</appender>-->  
  84.   
  85.     <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  86.         <file>error.log</file>  
  87.   
  88.         <encoder>  
  89.             <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern>  
  90.             <charset>UTF-8</charset>  
  91.         </encoder>  
  92.   
  93.         <!-- 按照固定窗口模式生成日誌文件,當文件大於20MB時,生成新的日誌文件。  
  94.         -    窗口大小是1到3,當保存了3個歸檔文件後,將覆蓋最早的日誌。  
  95.         -    可以指定文件壓縮選項  
  96.         -->  
  97.         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">  
  98.             <fileNamePattern>error.%d{yyyy-MM}(%i).log.zip</fileNamePattern>  
  99.             <minIndex>1</minIndex>  
  100.             <maxIndex>3</maxIndex>  
  101.             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
  102.                 <maxFileSize>100MB</maxFileSize>  
  103.             </timeBasedFileNamingAndTriggeringPolicy>  
  104.             <maxHistory>30</maxHistory>  
  105.         </rollingPolicy>  
  106.     </appender>  
  107.   
  108.     <!-- 異步輸出 -->  
  109.     <appender name ="ASYNC" class"ch.qos.logback.classic.AsyncAppender">  
  110.         <!-- 不丟失日誌.默認的,如果隊列的80%已滿,則會丟棄TRACT、DEBUG、INFO級別的日誌 -->  
  111.         <discardingThreshold >0</discardingThreshold>  
  112.         <!-- 更改默認的隊列的深度,該值會影響性能.默認值爲256 -->  
  113.         <queueSize>512</queueSize>  
  114.         <!-- 添加附加的appender,最多隻能添加一個 -->  
  115.         <appender-ref ref ="ERROR"/>  
  116.     </appender>  
  117.   
  118.     <!--  
  119.     - 1.name:包名或類名,用來指定受此loger約束的某一個包或者具體的某一個類  
  120.     - 2.未設置打印級別,所以繼承他的上級<root>的日誌級別“DEBUG”  
  121.     - 3.未設置addtivity,默認爲true,將此loger的打印信息向上級傳遞;  
  122.     - 4.未設置appender,此loger本身不打印任何信息,級別爲“DEBUG”及大於“DEBUG”的日誌信息傳遞給root,  
  123.     -  root接到下級傳遞的信息,交給已經配置好的名爲“STDOUT”的appender處理,“STDOUT”appender將信息打印到控制檯;  
  124.     -->  
  125.     <logger name="ch.qos.logback" />  
  126.   
  127.     <!--  
  128.     - 1.將級別爲“INFO”及大於“INFO”的日誌信息交給此loger指定的名爲“STDOUT”的appender處理,在控制檯中打出日誌,  
  129.     -   不再向次loger的上級 <logger name="logback"/> 傳遞打印信息  
  130.     - 2.level:設置打印級別(TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF),還有一個特俗值INHERITED或者同義詞NULL,代表強制執行上級的級別。  
  131.     -        如果未設置此屬性,那麼當前loger將會繼承上級的級別。  
  132.     - 3.additivity:爲false,表示此loger的打印信息不再向上級傳遞,如果設置爲true,會打印兩次  
  133.     - 4.appender-ref:指定了名字爲"STDOUT"的appender。  
  134.     -->  
  135.     <logger name="com.weizhi.common.LogMain" level="INFO" additivity="false">  
  136.         <appender-ref ref="STDOUT"/>  
  137.         <!--<appender-ref ref="DEBUG"/>-->  
  138.         <!--<appender-ref ref="EXCEPTION"/>-->  
  139.         <!--<appender-ref ref="INFO"/>-->  
  140.         <!--<appender-ref ref="ERROR"/>-->  
  141.   
  142.         <appender-ref ref="ASYNC"/>  
  143.     </logger>  
  144.   
  145.   
  146.     <!--  
  147.     - 根logger  
  148.     - level:設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能設置爲INHERITED或者同義詞NULL。  
  149.     -       默認是DEBUG。  
  150.     -appender-ref:可以包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個loger  
  151.     -->  
  152.     <root level="DEBUG">  
  153.         <appender-ref ref="STDOUT"/>  
  154.         <!--<appender-ref ref="DEBUG"/>-->  
  155.         <!--<appender-ref ref="EXCEPTION"/>-->  
  156.         <!--<appender-ref ref="INFO"/>-->  
  157.         <appender-ref ref="ASYNC"/>  
  158.     </root>  
  159. </configuration>  

Logback啓動日誌

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章