logback-spring.xml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <property name="LOG_CONTEXT_NAME" value="log"/>
  4. <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
  5. <property name="LOG_HOME" value="logs/${LOG_CONTEXT_NAME}" />
  6. <!-- 定义日志上下文的名称 -->
  7. <contextName>${LOG_CONTEXT_NAME}</contextName>
  8. <!-- 控制台输出 -->
  9. <!--<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  10. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  11. &lt;!&ndash;格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符&ndash;&gt;
  12. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n</pattern>
  13. <charset>utf-8</charset>
  14. </encoder>
  15. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  16. <level>INFO</level>
  17. </filter>
  18. </appender>-->
  19. <!-- 彩色日志依赖的渲染类 -->
  20. <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
  21. <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
  22. <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
  23. <!-- 彩色日志格式 -->
  24. <property name="CONSOLE_LOG_PATTERN" 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}}"/>
  25. <!--1. 输出到控制台-->
  26. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  27. <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
  28. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  29. <level>INFO</level>
  30. </filter>
  31. <encoder>
  32. <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
  33. <!-- 设置字符集 -->
  34. <charset>UTF-8</charset>
  35. </encoder>
  36. </appender>
  37. <!--info日志统一输出到这里-->
  38. <appender name="file.info" class="ch.qos.logback.core.rolling.RollingFileAppender">
  39. <Prudent>true</Prudent>
  40. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  41. <!--日志文件输出的文件名,按小时生成-->
  42. <FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/info/info.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
  43. <!--日志文件保留天数-->
  44. <MaxHistory>30</MaxHistory>
  45. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  46. <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
  47. <maxFileSize>10MB</maxFileSize>
  48. </timeBasedFileNamingAndTriggeringPolicy>
  49. </rollingPolicy>
  50. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  51. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
  52. <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
  53. <charset>utf-8</charset>
  54. </encoder>
  55. <!-- 此日志文件只记录info级别的 -->
  56. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  57. <level>INFO</level>
  58. <onMatch>ACCEPT</onMatch>
  59. <onMismatch>DENY</onMismatch>
  60. </filter>
  61. </appender>
  62. <!--错误日志统一输出到这里-->
  63. <appender name="file.error" class="ch.qos.logback.core.rolling.RollingFileAppender">
  64. <Prudent>true</Prudent>
  65. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  66. <!--日志文件输出的文件名,按天生成-->
  67. <FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/error/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
  68. <!--日志文件保留天数-->
  69. <MaxHistory>30</MaxHistory>
  70. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  71. <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
  72. <maxFileSize>10MB</maxFileSize>
  73. </timeBasedFileNamingAndTriggeringPolicy>
  74. </rollingPolicy>
  75. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  76. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
  77. <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
  78. <charset>utf-8</charset>
  79. </encoder>
  80. <!-- 此日志文件只记录error级别的 -->
  81. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  82. <level>ERROR</level>
  83. <onMatch>ACCEPT</onMatch>
  84. <onMismatch>DENY</onMismatch>
  85. </filter>
  86. </appender>
  87. <!--warn日志统一输出到这里-->
  88. <appender name="file.warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
  89. <Prudent>true</Prudent>
  90. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  91. <FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/warn/warn.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
  92. <!--日志文件保留天数-->
  93. <MaxHistory>30</MaxHistory>
  94. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  95. <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
  96. <maxFileSize>10MB</maxFileSize>
  97. </timeBasedFileNamingAndTriggeringPolicy>
  98. </rollingPolicy>
  99. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  100. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
  101. <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
  102. <charset>utf-8</charset>
  103. </encoder>
  104. <!-- 此日志文件只记录warn级别的 -->
  105. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  106. <level>WARN</level>
  107. <onMatch>ACCEPT</onMatch>
  108. <onMismatch>DENY</onMismatch>
  109. </filter>
  110. </appender>
  111. <logger name="org.apache.ibatis" level="DEBUG">
  112. <appender-ref ref="STDOUT" />
  113. </logger>
  114. <!-- 日志输出级别 -->
  115. <root level="DEBUG">
  116. <appender-ref ref="STDOUT" />
  117. <appender-ref ref="file.error" />
  118. <appender-ref ref="file.info" />
  119. <appender-ref ref="file.warn" />
  120. </root>
  121. </configuration>