logback-spring.xml 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <include resource="org/springframework/boot/logging/logback/base.xml"/>
  4. <jmxConfigurator/>
  5. <contextName>car_pay_center</contextName>
  6. <property name="LOG_PATH" value="./logs"/>
  7. <!--设置系统日志目录-->
  8. <property name="APPDIR" value="activiti-5.22"/>
  9. <!-- 彩色日志 -->
  10. <!-- 彩色日志依赖的渲染类 -->
  11. <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
  12. <conversionRule conversionWord="wex"
  13. converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
  14. <conversionRule conversionWord="wEx"
  15. converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
  16. <!-- 彩色日志格式 -->
  17. <property name="CONSOLE_LOG_PATTERN"
  18. value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
  19. <!-- 日志记录器,日期滚动记录 -->
  20. <appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
  21. <!-- 正在记录的日志文件的路径及文件名 -->
  22. <file>${LOG_PATH}/${APPDIR}/log_error.log</file>
  23. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  24. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  25. <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  26. 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  27. <fileNamePattern>${LOG_PATH}/${APPDIR}/error/%d{yyyyMMdd}/%d{HH:mm:ss}.%i.log</fileNamePattern>
  28. <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
  29. 命名日志文件,例如log-error-2013-12-21.0.log -->
  30. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  31. <maxFileSize>2MB</maxFileSize>
  32. </timeBasedFileNamingAndTriggeringPolicy>
  33. </rollingPolicy>
  34. <!-- 追加方式记录日志 -->
  35. <append>true</append>
  36. <!-- 日志文件的格式 -->
  37. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  38. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L [%thread] - %msg%n</pattern>
  39. <charset>utf-8</charset>
  40. </encoder>
  41. <!-- 此日志文件只记录info级别的 -->
  42. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  43. <level>error</level>
  44. <onMatch>ACCEPT</onMatch>
  45. <onMismatch>DENY</onMismatch>
  46. </filter>
  47. </appender>
  48. <!-- 日志记录器,日期滚动记录 -->
  49. <appender name="FILEWARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
  50. <!-- 正在记录的日志文件的路径及文件名 -->
  51. <file>${LOG_PATH}/${APPDIR}/log_warn.log</file>
  52. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  53. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  54. <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  55. 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  56. <fileNamePattern>${LOG_PATH}/${APPDIR}/warn/%d{yyyyMMdd}/%d{HH:mm:ss}.%i.log</fileNamePattern>
  57. <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
  58. 命名日志文件,例如log-error-2013-12-21.0.log -->
  59. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  60. <maxFileSize>2MB</maxFileSize>
  61. </timeBasedFileNamingAndTriggeringPolicy>
  62. </rollingPolicy>
  63. <!-- 追加方式记录日志 -->
  64. <append>true</append>
  65. <!-- 日志文件的格式 -->
  66. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  67. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L [%thread] - %msg%n</pattern>
  68. <charset>utf-8</charset>
  69. </encoder>
  70. <!-- 此日志文件只记录info级别的 -->
  71. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  72. <level>warn</level>
  73. <onMatch>ACCEPT</onMatch>
  74. <onMismatch>DENY</onMismatch>
  75. </filter>
  76. </appender>
  77. <!-- 日志记录器,日期滚动记录 -->
  78. <appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
  79. <!-- 正在记录的日志文件的路径及文件名 -->
  80. <file>${LOG_PATH}/${APPDIR}/log_info.log</file>
  81. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  82. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  83. <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  84. 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  85. <fileNamePattern>${LOG_PATH}/${APPDIR}/info/%d{yyyyMMdd}/%d{HH:mm:ss}.%i.log</fileNamePattern>
  86. <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
  87. 命名日志文件,例如log-error-2013-12-21.0.log -->
  88. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  89. <maxFileSize>20MB</maxFileSize>
  90. </timeBasedFileNamingAndTriggeringPolicy>
  91. </rollingPolicy>
  92. <!-- 追加方式记录日志 -->
  93. <append>true</append>
  94. <!-- 日志文件的格式 -->
  95. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  96. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger [%thread] - %msg%n</pattern>
  97. <charset>utf-8</charset>
  98. </encoder>
  99. <!-- 此日志文件只记录info级别的 -->
  100. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  101. <level>info</level>
  102. <onMatch>ACCEPT</onMatch>
  103. <onMismatch>DENY</onMismatch>
  104. </filter>
  105. </appender>
  106. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  107. <!--encoder 默认配置为PatternLayoutEncoder-->
  108. <encoder>
  109. <pattern>${CONSOLE_LOG_PATTERN}</pattern>
  110. <charset>utf-8</charset>
  111. </encoder>
  112. <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
  113. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  114. <level>debug</level>
  115. </filter>
  116. </appender>
  117. <!--myibatis log configure-->
  118. <logger name="com.apache.ibatis" level="TRACE"/>
  119. <logger name="java.sql.Connection" level="DEBUG"/>
  120. <logger name="java.sql.Statement" level="DEBUG"/>
  121. <logger name="java.sql.PreparedStatement" level="DEBUG"/>
  122. <!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
  123. <!--
  124. <springProfile name="dev">
  125. </springProfile>
  126. 可以使用这个标签实现不同环境不同日志级别
  127. <springProfile name="test">
  128. <root level="INFO">
  129. <appender-ref ref="FILE"/>
  130. <appender-ref ref="STDOUT"/>
  131. </root>
  132. </springProfile>
  133. -->
  134. <!-- 异步输出 -->
  135. <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
  136. <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
  137. <discardingThreshold>0</discardingThreshold>
  138. <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
  139. <queueSize>256</queueSize>
  140. <!-- 添加附加的appender,最多只能添加一个 -->
  141. <appender-ref ref="FILEINFO"/>
  142. </appender>
  143. <!--
  144. springProperty 可以读取配置文件中的属性 <file>logs/${logName}.log</file> 使用方法
  145. <springProperty scope="context" name="logName"
  146. source="spring.application.name" defaultValue="localhost"/>
  147. -->
  148. <springProfile name="dev">
  149. <root level="INFO">
  150. <appender-ref ref="FILEERROR" />
  151. <appender-ref ref="FILEWARN" />
  152. <appender-ref ref="ASYNC" />
  153. <!-- 生产环境将请stdout,testfile去掉 -->
  154. <!-- <appender-ref ref="STDOUT"/>-->
  155. </root>
  156. </springProfile>
  157. <springProfile name="pro">
  158. <root level="INFO">
  159. <appender-ref ref="FILEERROR" />
  160. <appender-ref ref="FILEWARN" />
  161. <appender-ref ref="ASYNC" />
  162. <!-- 生产环境将请stdout,testfile去掉 -->
  163. <!-- <appender-ref ref="STDOUT"/>-->
  164. </root>
  165. </springProfile>
  166. </configuration>