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> 

猜你喜欢

转载自www.cnblogs.com/Ryanjie/p/10142672.html