logback-spring.xml 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--debug="true" : 打印 logback 内部状态(默认当 logback 运行出错时才会打印内部状态 ), 配置该属性后打印条件如下(同时满足):
  3. 1、找到配置文件
  4. 2、配置文件是一个格式正确的xml文件 也可编程实现打印内部状态,
  5. 例如: LoggerContext lc = (LoggerContext)LoggerFactory.getILoggerFactory(); StatusPrinter.print(lc); -->
  6. <!-- scan="true" : 自动扫描该配置文件,若有修改则重新加载该配置文件 -->
  7. <!-- scanPeriod="30 seconds" : 配置自动扫面时间间隔
  8. (单位可以是:milliseconds, seconds, minutes or hours,默认为:milliseconds),
  9. 默认为1分钟,scan="true"时该配置才会生效 -->
  10. <!--https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd-->
  11. <configuration
  12. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  13. xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd"
  14. debug="false" scan="true" scanPeriod="30 seconds">
  15. <property name="PROJECT" value="lift-system"/>
  16. <property name="ROOT" value="logs/${PROJECT}/"/>
  17. <property name="FILE_SIZE" value="10MB"/>
  18. <property name="MAX_HISTORY" value="100"/>
  19. <timestamp key="DATETIME" datePattern="yyyy-MM-dd HH:mm"/>
  20. <property name="PATTERN" value="[%-5level] %d{yyyy-MM-dd HH:mm:ss} [%thread] %logger{30} - %m%n" />
  21. <!-- 控制台打印 -->
  22. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  23. <!--是否支持ANSI color codes(类似linux中的shell脚本的输出字符串颜色控制代码)。默认为false。如果设置为true。例如:[31m 代表将前景色设置成红色。-->
  24. <!--在windows中,需要提供"org.fusesource.jansi:jansi:1.9",而在linux,mac os x中默认支持。-->
  25. <!--<withJansi>true</withJansi>-->
  26. <encoder charset="utf-8">
  27. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
  28. <!--"%black", "%red", "%green","%yellow","%blue", "%magenta","%cyan", "%white", "%gray", "%boldRed","%boldGreen", -->
  29. <!--"%boldYellow", "%boldBlue", "%boldMagenta""%boldCyan", "%boldWhite" and "%highlight"-->
  30. <pattern>%highlight([%-5level]) %highlight(%d{yyyy-MM-dd HH:mm:ss}) %cyan([%thread]) %boldMagenta(%logger{30}) - %m%n
  31. </pattern>
  32. </encoder>
  33. </appender>
  34. <!-- ERROR 输入到文件,按日期和文件大小 -->
  35. <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
  36. <encoder charset="utf-8">
  37. <pattern>${PATTERN}</pattern>
  38. </encoder>
  39. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  40. <level>ERROR</level>
  41. <onMatch>ACCEPT</onMatch>
  42. <onMismatch>DENY</onMismatch>
  43. </filter>
  44. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  45. <fileNamePattern>${ROOT}%d/error.%i.log</fileNamePattern>
  46. <maxHistory>${MAX_HISTORY}</maxHistory>
  47. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  48. <maxFileSize>${FILE_SIZE}</maxFileSize>
  49. </timeBasedFileNamingAndTriggeringPolicy>
  50. </rollingPolicy>
  51. </appender>
  52. <!-- WARN 输入到文件,按日期和文件大小 -->
  53. <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
  54. <encoder charset="utf-8">
  55. <pattern>${PATTERN}</pattern>
  56. </encoder>
  57. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  58. <level>WARN</level>
  59. <onMatch>ACCEPT</onMatch>
  60. <onMismatch>DENY</onMismatch>
  61. </filter>
  62. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  63. <fileNamePattern>${ROOT}%d/warn.%i.log</fileNamePattern>
  64. <maxHistory>${MAX_HISTORY}</maxHistory>
  65. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  66. <maxFileSize>${FILE_SIZE}</maxFileSize>
  67. </timeBasedFileNamingAndTriggeringPolicy>
  68. </rollingPolicy>
  69. </appender>
  70. <!-- INFO 输入到文件,按日期和文件大小 -->
  71. <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
  72. <encoder charset="utf-8">
  73. <pattern>${PATTERN}</pattern>
  74. </encoder>
  75. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  76. <level>INFO</level>
  77. <onMatch>ACCEPT</onMatch>
  78. <onMismatch>DENY</onMismatch>
  79. </filter>
  80. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  81. <fileNamePattern>${ROOT}%d/info.%i.log</fileNamePattern>
  82. <maxHistory>${MAX_HISTORY}</maxHistory>
  83. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  84. <maxFileSize>${FILE_SIZE}</maxFileSize>
  85. </timeBasedFileNamingAndTriggeringPolicy>
  86. </rollingPolicy>
  87. </appender>
  88. <!-- DEBUG 输入到文件,按日期和文件大小 -->
  89. <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
  90. <encoder charset="utf-8">
  91. <pattern>${PATTERN}</pattern>
  92. </encoder>
  93. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  94. <level>DEBUG</level>
  95. <onMatch>ACCEPT</onMatch>
  96. <onMismatch>DENY</onMismatch>
  97. </filter>
  98. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  99. <fileNamePattern>${ROOT}%d/debug.%i.log</fileNamePattern>
  100. <maxHistory>${MAX_HISTORY}</maxHistory>
  101. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  102. <maxFileSize>${FILE_SIZE}</maxFileSize>
  103. </timeBasedFileNamingAndTriggeringPolicy>
  104. </rollingPolicy>
  105. </appender>
  106. <!-- TRACE 输入到文件,按日期和文件大小 -->
  107. <appender name="TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  108. <encoder charset="utf-8">
  109. <pattern>${PATTERN}</pattern>
  110. </encoder>
  111. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  112. <level>TRACE</level>
  113. <onMatch>ACCEPT</onMatch>
  114. <onMismatch>DENY</onMismatch>
  115. </filter>
  116. <rollingPolicy
  117. class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  118. <fileNamePattern>${ROOT}%d/trace.%i.log</fileNamePattern>
  119. <maxHistory>${MAX_HISTORY}</maxHistory>
  120. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  121. <maxFileSize>${FILE_SIZE}</maxFileSize>
  122. </timeBasedFileNamingAndTriggeringPolicy>
  123. </rollingPolicy>
  124. </appender>
  125. <!-- SQL相关日志输出-->
  126. <logger name="org.apache.ibatis" level="INFO" additivity="true"/>
  127. <logger name="org.mybatis.spring" level="INFO" additivity="false"/>
  128. <logger name="com.github.miemiedev.mybatis.paginator" level="INFO" additivity="false"/>
  129. <!-- Logger 根目录 -->
  130. <root level="INFO">
  131. <appender-ref ref="STDOUT"/>
  132. <appender-ref ref="DEBUG"/>
  133. <appender-ref ref="ERROR"/>
  134. <appender-ref ref="WARN"/>
  135. <appender-ref ref="INFO"/>
  136. <appender-ref ref="TRACE"/>
  137. </root>
  138. </configuration>