logback.xml 模板

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!--configuration 根節點,包含下面三個屬性: 
  3.     scan: 當此屬性設置爲true時,配置文件若是發生改變,將會被從新加載,默認值爲true。 
  4.     scanPeriod: 設置監測配置文件是否有修改的時間間隔,若是沒有給出時間單位,默認單位是毫秒。當scan爲true時,此屬性生效。默認的時間間隔爲1分鐘。 
  5.     debug: 當此屬性設置爲true時,將打印出logback內部日誌信息,實時查看logback運行狀態。默認值爲false。 
  6. --> 
  7. <configuration 
  8. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  9. xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd" 
  10. scan="true" scanPeriod="60 seconds" debug="false"> 
  11.  
  12. <!--子節點<property> :用來定義變量值,它有兩個屬性name和value,經過<property>定義的值會被插入到logger上下文中,可使「${}」來使用變量。name: 變量的名稱; value: 變量定義的值--> 
  13. <!--logback日誌顯示級別:TRACE < DEBUG < INFO < WARN < ERROR --> 
  14. <!-- logger.trace("msg) logger.debug......--> 
  15. <property name = "log.level" value = "debug"/> 
  16. <!--日誌文件最大保留數量--> 
  17. <property name = "log.maxHistory" value = "30"/> 
  18. <!--日誌保存的根路徑--> 
  19. <property name = "log.filePath" value = "${catalina.base}/logs/webapps"/> 
  20. <!--日誌文件顯示格式 具體時間,哪個線程,級別,日誌相關信息--> 
  21. <property name = "log.pattern" value = "%d{yyyy-MM-dd HH:mm:ss:SSS} [%thr ead] %-5level %logger{50} - %msg%n"/> 
  22.  
  23. <!--子節點<appender>:負責寫日誌的組件,它有兩個必要屬性name和class。name指定appender名稱,class指定appender的全限定名--> 
  24. <!--控制檯打印--> 
  25. <!--ConsoleAppender 把日誌輸出到控制檯,有如下子節點: 
  26.     <encoder>:對日誌進行格式化。 
  27.     <target>:字符串System.out(默認)或者System.err 
  28. --> 
  29. <appender name = "consoleAppender" class = "ch.qos.logback.core.ConsoleAppender"> 
  30. <encoder> 
  31. <pattern>${log.pattern}</pattern> 
  32. </encoder> 
  33. </appender> 
  34.  
  35. <!--DEBUG 輸入到文件--> 
  36. <!--RollingFileAppender:滾動記錄文件,先將日誌記錄到指定文件,當符合某個條件時,將日誌記錄到其餘文件。有如下子節點: 
  37.     <file>:被寫入的文件名,能夠是相對目錄,也能夠是絕對目錄,若是上級目錄不存在會自動建立,沒有默認值。 
  38.     <append>:若是是 true,日誌被追加到文件結尾,若是是 false,清空現存文件,默認是true。 
  39.     <rollingPolicy>:當發生滾動時,決定RollingFileAppender的行爲,涉及文件移動和重命名。屬性class定義具體的滾動策略類 
  40. class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy": 最經常使用的滾動策略,它根據時間來制定滾動策略,既負責滾動也負責出發滾動。有如下子節點: 
  41.     <fileNamePattern>:必要節點,包含文件名及「%d」轉換符,「%d」能夠包含一個java.text.SimpleDateFormat指定的時間格式,如:%d{yyyy-MM}。 
  42. 若是直接使用 %d,默認格式是 yyyy-MM-dd。RollingFileAppender的file字節點無關緊要,經過設置file,能夠爲活動文件和歸檔文件指定不一樣位置,當前日誌老是記錄到file指定的文件(活動文件),活動文件的名字不會改變; 
  43. 若是沒設置file,活動文件的名字會根據fileNamePattern 的值,每隔一段時間改變一次。「/」或者「\」會被當作目錄分隔符。 
  44.     <maxHistory>: 可選節點,控制保留的歸檔文件的最大數量,超出數量就刪除舊文件。假設設置每月滾動,且<maxHistory>是6,則只保存最近6個月的文件,刪除以前的舊文件。注意,刪除舊文件是,那些爲了歸檔而建立的目錄也會被刪除。 
  45. --> 
  46. <appender name = "debugAppender" class = "ch.qos.logback.core.rolling.RollingFileAppender"> 
  47. <!--設置日誌文件路徑--> 
  48. <file>${log.filePath}/debug.log</file> 
  49. <rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
  50. <!--設置日誌文件名稱--> 
  51. <fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz</fileNamePattern> 
  52. <!--設置日誌文件最大保存數量 --> 
  53. <maxHistory>${log.maxHistory}</maxHistory> 
  54. </rollingPolicy> 
  55. <encoder> 
  56. <pattern>${log.pattern}</pattern> 
  57. </encoder> 
  58. <!--添加過濾器--> 
  59. <!--LevelFilter: 級別過濾器,根據日誌級別進行過濾。若是日誌級別等於配置級別,過濾器會根據onMath 和 onMismatch接收或拒絕日誌。有如下子節點: 
  60. <level>: 設置過濾級別 
  61. <onMatch>: 用於配置符合過濾條件的操做 
  62. <onMismatch>: 用於配置不符合過濾條件的操做 
  63. --> 
  64. <filter class = "ch.qos.logback.classic.filter.LevelFilter"> 
  65. <level>DEBUG</level> 
  66. <onMatch>ACCEPT</onMatch> 
  67. <onMismatch>DENY</onMismatch> 
  68. </filter> 
  69. </appender> 
  70.  
  71. <!--INFO 輸入到文件--> 
  72. <appender name = "infoAppender" class = "ch.qos.logback.core.rolling.RollingFileAppender"> 
  73. <!--設置日誌文件路徑--> 
  74. <file>${log.filePath}/info.log</file> 
  75. <rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
  76. <!--設置日誌文件名稱--> 
  77. <fileNamePattern>${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz</fileNamePattern> 
  78. <!--設置日誌文件最大保存數量 --> 
  79. <maxHistory>${log.maxHistory}</maxHistory> 
  80. </rollingPolicy> 
  81. <encoder> 
  82. <pattern>${log.pattern}</pattern> 
  83. </encoder> 
  84. <filter class = "ch.qos.logback.classic.filter.LevelFilter"> 
  85. <level>INFO</level> 
  86. <onMatch>ACCEPT</onMatch> 
  87. <onMismatch>DENY</onMismatch> 
  88. </filter> 
  89. </appender> 
  90.  
  91. <!--WARN 輸入到文件--> 
  92. <appender name = "warnAppender" class = "ch.qos.logback.core.rolling.RollingFileAppender"> 
  93. <!--設置日誌文件路徑--> 
  94. <file>${log.filePath}/warn.log</file> 
  95. <rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
  96. <!--設置日誌文件名稱--> 
  97. <fileNamePattern>${log.filePath}/warn/warn.%d{yyyy-MM-dd}.log.gz</fileNamePattern> 
  98. <!--設置日誌文件最大保存數量 --> 
  99. <maxHistory>${log.maxHistory}</maxHistory> 
  100. </rollingPolicy> 
  101. <encoder> 
  102. <pattern>${log.pattern}</pattern> 
  103. </encoder> 
  104. <filter class = "ch.qos.logback.classic.filter.LevelFilter"> 
  105. <level>WARN</level> 
  106. <onMatch>ACCEPT</onMatch> 
  107. <onMismatch>DENY</onMismatch> 
  108. </filter> 
  109. </appender> 
  110.  
  111. <!--ERROR 輸入到文件--> 
  112. <appender name = "errorAppender" class = "ch.qos.logback.core.rolling.RollingFileAppender"> 
  113. <!--設置日誌文件路徑--> 
  114. <file>${log.filePath}/error.log</file> 
  115. <rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
  116. <!--設置日誌文件名稱--> 
  117. <fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern> 
  118. <!--設置日誌文件最大保存數量 --> 
  119. <maxHistory>${log.maxHistory}</maxHistory> 
  120. </rollingPolicy> 
  121. <encoder> 
  122. <pattern>${log.pattern}</pattern> 
  123. </encoder> 
  124. <filter class = "ch.qos.logback.classic.filter.LevelFilter"> 
  125. <level>ERROR</level> 
  126. <onMatch>ACCEPT</onMatch> 
  127. <onMismatch>DENY</onMismatch> 
  128. </filter> 
  129. </appender> 
  130.  
  131. <!--子節點<logger>:用來設置某一個包或具體的某一個類的日誌打印級別、以及指定<appender>。<logger>僅有一個name屬性,一個可選的level和一個可選的addtivity屬性。能夠包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個logger 
  132.    name: 用來指定受此logger約束的某一個包或者具體的某一個類。 
  133.    level: 用來設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,還有一個特俗值INHERITED或者同義詞NULL,表明強制執行上級的級別。 若是未設置此屬性,那麼當前logger將會繼承上級的級別。 
  134. additivity: 是否向上級logger傳遞打印信息。默認是true。同<logger>同樣,能夠包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個logger。 
  135. --> 
  136. <logger name = "com.ryanjie.o2o" level = "${log.level}" additivity = "true"> 
  137. <!--logger 與 appender 相互綁定--> 
  138. <appender-ref ref = "debugAppender"/> 
  139. <appender-ref ref = "infoAppender"/> 
  140. <appender-ref ref = "warnAppender"/> 
  141. <appender-ref ref = "eeorAppender"/> 
  142. </logger> 
  143.  
  144. <!--子節點<root>:它也是<logger>元素,可是它是根logger,是全部<logger>的上級。只有一個level屬性,由於name已經被命名爲"root",且已是最上級了。 
  145.     level: 用來設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,不能設置爲INHERITED或者同義詞NULL。 默認是DEBUG。 
  146. --> 
  147. <root level = "info"> 
  148. <appender-ref ref = "consoleAppender"/> 
  149. </root> 
  150. </configuration> 
相關文章
相關標籤/搜索