logback-spring.xml 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  3. <property name="LOG_MAX_HISTORY" value="180"/>
  4. <springProperty scope="context" name="LOG_PATH" source="logging.path"/>
  5. <!-- 控制台输出 -->
  6. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  7. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  8. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
  9. <pattern>${LOG_PATH}/%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{50} - %msg%n</pattern>
  10. <!--<charset>utf-8</charset>-->
  11. </encoder>
  12. </appender>
  13. <!-- 按照每天生成日志文件:主项目日志 -->
  14. <appender name="file.all" class="ch.qos.logback.core.rolling.RollingFileAppender">
  15. <!-- 追加日志到原文件结尾 -->
  16. <Prudent>true</Prudent>
  17. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  18. <!--日志文件输出的文件名 -->
  19. <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
  20. <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
  21. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  22. <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
  23. <maxFileSize>10MB</maxFileSize>
  24. </timeBasedFileNamingAndTriggeringPolicy>
  25. </rollingPolicy>
  26. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  27. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
  28. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{500} - %msg%n</pattern>
  29. <!--<charset>utf-8</charset>-->
  30. </encoder>
  31. </appender>
  32. <!--info日志统一输出到这里-->
  33. <appender name="file.info" class="ch.qos.logback.core.rolling.RollingFileAppender">
  34. <Prudent>true</Prudent>
  35. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  36. <!--日志文件输出的文件名 每小时生成日志文件 -->
  37. <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/info/console-info.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
  38. <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
  39. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  40. <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
  41. <maxFileSize>10MB</maxFileSize>
  42. </timeBasedFileNamingAndTriggeringPolicy>
  43. </rollingPolicy>
  44. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  45. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
  46. <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
  47. <!--<charset>utf-8</charset>-->
  48. </encoder>
  49. <!-- 此日志文件只记录info级别的 -->
  50. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  51. <level>INFO</level>
  52. <onMatch>ACCEPT</onMatch>
  53. <onMismatch>DENY</onMismatch>
  54. </filter>
  55. </appender>
  56. <!--错误日志统一输出到这里-->
  57. <appender name="file.error" class="ch.qos.logback.core.rolling.RollingFileAppender">
  58. <Prudent>true</Prudent>
  59. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  60. <!--日志文件输出的文件名-->
  61. <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/error/console-error.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
  62. <!--日志文件保留天数-->
  63. <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
  64. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  65. <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
  66. <maxFileSize>10MB</maxFileSize>
  67. </timeBasedFileNamingAndTriggeringPolicy>
  68. </rollingPolicy>
  69. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  70. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
  71. <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
  72. <!--<charset>utf-8</charset>-->
  73. </encoder>
  74. <!-- 此日志文件只记录error级别的 -->
  75. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  76. <level>ERROR</level>
  77. <onMatch>ACCEPT</onMatch>
  78. <onMismatch>DENY</onMismatch>
  79. </filter>
  80. </appender>
  81. <!--warn日志统一输出到这里-->
  82. <appender name="file.warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
  83. <Prudent>true</Prudent>
  84. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  85. <!--日志文件输出的文件名 按小时生成日志-->
  86. <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/warn/console-warn.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
  87. <!--日志文件保留天数-->
  88. <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
  89. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  90. <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
  91. <maxFileSize>10MB</maxFileSize>
  92. </timeBasedFileNamingAndTriggeringPolicy>
  93. </rollingPolicy>
  94. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  95. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
  96. <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
  97. <!--<charset>utf-8</charset>-->
  98. </encoder>
  99. <!-- 此日志文件只记录warn级别的 -->
  100. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  101. <level>WARN</level>
  102. <onMatch>ACCEPT</onMatch>
  103. <onMismatch>DENY</onMismatch>
  104. </filter>
  105. </appender>
  106. <!--debug级别日志统一输出到这里-->
  107. <appender name="file.debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
  108. <Prudent>true</Prudent>
  109. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  110. <!--日志文件输出的文件名 按小时生成日志-->
  111. <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/debug/console-debug.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
  112. <!--日志文件保留天数-->
  113. <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
  114. <!-- 除按日志记录之外,还配置了日志文件不能超过5M,若超过5M,日志文件会以索引0开始,命名日志文件,例如console-debug.2018-08-24-09.1.log -->
  115. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  116. <maxFileSize>10MB</maxFileSize>
  117. </timeBasedFileNamingAndTriggeringPolicy>
  118. </rollingPolicy>
  119. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  120. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
  121. <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
  122. <!--<charset>utf-8</charset>-->
  123. </encoder>
  124. <!-- 此日志文件只记录debug级别的 -->
  125. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  126. <level>DEBUG</level>
  127. <onMatch>ACCEPT</onMatch>
  128. <onMismatch>DENY </onMismatch>
  129. </filter>
  130. </appender>
  131. <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
  132. <appender name="file.async" class="ch.qos.logback.classic.AsyncAppender">
  133. <discardingThreshold>0</discardingThreshold>
  134. <queueSize>256</queueSize>
  135. <includeCallerData>true</includeCallerData>
  136. <appender-ref ref="file.all" />
  137. </appender>
  138. <!-- 日志输出级别 -->
  139. <!-- TRACE\DEBUG\INFO\WARN\ERROR\FATAL\OFF -->
  140. <root level="INFO">
  141. <appender-ref ref="console" />
  142. <appender-ref ref="file.async"/>
  143. <appender-ref ref="file.error" />
  144. <appender-ref ref="file.info" />
  145. <appender-ref ref="file.debug" />
  146. <appender-ref ref="file.warn" />
  147. </root>
  148. </configuration>