logback-spring.xml 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <!-- 日志存放路径 -->
  4. <springProperty scope="context" name="log.path" source="logging.file.path"/>
  5. <!-- 日志输出格式 -->
  6. <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - [%method,%line] - %msg%n"/>
  7. <!-- 控制台输出 -->
  8. <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  9. <encoder>
  10. <pattern>${log.pattern}</pattern>
  11. </encoder>
  12. </appender>
  13. <!-- 错误日志输出 -->
  14. <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  15. <file>${log.path}/error.log</file>
  16. <!-- 循环政策:基于时间创建日志文件 -->
  17. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  18. <!-- 日志文件名格式 -->
  19. <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/error-%i.log.gz</fileNamePattern>
  20. <!--日志文件最大的大小 -->
  21. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  22. <maxFileSize>20MB</maxFileSize>
  23. </timeBasedFileNamingAndTriggeringPolicy>
  24. <!-- 日志最大的历史 60天 -->
  25. <maxHistory>60</maxHistory>
  26. </rollingPolicy>
  27. <encoder>
  28. <pattern>${log.pattern}</pattern>
  29. </encoder>
  30. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  31. <!-- 过滤的级别: 如果定义了日志级别为warn ,却没有指定 warn的日志处理方式: warn日志信息就不会有 -->
  32. <level>ERROR</level>
  33. <!-- 匹配时的操作:接收(记录) -->
  34. <onMatch>ACCEPT</onMatch>
  35. <!-- 不匹配时的操作:拒绝(不记录) -->
  36. <onMismatch>DENY</onMismatch>
  37. </filter>
  38. </appender>
  39. <!-- 警告日志输出 -->
  40. <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  41. <file>${log.path}/warn.log</file>
  42. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  43. <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/warn-%i.log.gz</fileNamePattern>
  44. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  45. <maxFileSize>20MB</maxFileSize>
  46. </timeBasedFileNamingAndTriggeringPolicy>
  47. <maxHistory>60</maxHistory>
  48. </rollingPolicy>
  49. <encoder>
  50. <pattern>${log.pattern}</pattern>
  51. </encoder>
  52. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  53. <level>WARN</level>
  54. <onMatch>ACCEPT</onMatch>
  55. <onMismatch>DENY</onMismatch>
  56. </filter>
  57. </appender>
  58. <!-- 记录日志输出 -->
  59. <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  60. <file>${log.path}/info.log</file>
  61. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  62. <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/info-%i.log.gz</fileNamePattern>
  63. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  64. <maxFileSize>20MB</maxFileSize>
  65. </timeBasedFileNamingAndTriggeringPolicy>
  66. <maxHistory>60</maxHistory>
  67. </rollingPolicy>
  68. <encoder>
  69. <pattern>${log.pattern}</pattern>
  70. </encoder>
  71. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  72. <level>INFO</level>
  73. <onMatch>ACCEPT</onMatch>
  74. <onMismatch>DENY</onMismatch>
  75. </filter>
  76. </appender>
  77. <!-- 调试日志输出 -->
  78. <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  79. <file>${log.path}/debug.log</file>
  80. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  81. <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/debug-%i.log.gz</fileNamePattern>
  82. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  83. <maxFileSize>20MB</maxFileSize>
  84. </timeBasedFileNamingAndTriggeringPolicy>
  85. <maxHistory>30</maxHistory>
  86. </rollingPolicy>
  87. <encoder>
  88. <pattern>${log.pattern}</pattern>
  89. </encoder>
  90. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  91. <level>DEBUG</level>
  92. <onMatch>ACCEPT</onMatch>
  93. <onMismatch>DENY</onMismatch>
  94. </filter>
  95. </appender>
  96. <!-- 指定日志输出 -->
  97. <appender name="POINT_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  98. <file>${log.path}/point.log</file>
  99. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  100. <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/point-%i.log.gz</fileNamePattern>
  101. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  102. <maxFileSize>20MB</maxFileSize>
  103. </timeBasedFileNamingAndTriggeringPolicy>
  104. <maxHistory>60</maxHistory>
  105. </rollingPolicy>
  106. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  107. <layout class="ch.qos.logback.classic.PatternLayout">
  108. <pattern>${log.pattern}</pattern>
  109. </layout>
  110. </encoder>
  111. </appender>
  112. <!-- Spring日志级别控制 -->
  113. <logger name="org.springframework" level="warn"/>
  114. <!-- hikari 日志级别 -->
  115. <Logger name="com.zaxxer.hikari" level="info"></Logger>
  116. <!-- Hibernate 日志级别 -->
  117. <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>
  118. <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG"/>
  119. <logger name="org.hibernate.SQL" level="DEBUG"/>
  120. <logger name="org.hibernate.engine.QueryParameters" level="DEBUG"/>
  121. <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG"/>
  122. <!-- 配置文件默认名字:logback-spring.xml,也可以用logback.xml -->
  123. <!-- 1. 多环境配置,通过springProfile设置环境,root内容会自动追加到logger -->
  124. <!-- 2. 过滤的级别: 如果定义了日志级别为warn ,却没有指定 warn的日志处理方式: warn日志信息就不会有 -->
  125. <!-- 3. 指定类输出日志到指定文件夹: private static final Logger logger = LoggerFactory.getLogger("point"); -->
  126. <!-- # 日志配置 logging.level.com.malk=debug logging.level.org.springframework: warn -->
  127. <logger name="point" level="DEBUG">
  128. <appender-ref ref="POINT_FILE"/>
  129. </logger>
  130. <!-- 开发环境: 打印控制台 -->
  131. <springProfile name="dev">
  132. <root level="warn">
  133. <appender-ref ref="CONSOLE"/>
  134. <appender-ref ref="INFO_FILE"/>
  135. </root>
  136. </springProfile>
  137. <!-- 测试环境:输出文件 -->
  138. <springProfile name="test">
  139. <root level="info">
  140. <appender-ref ref="DEBUG_FILE"/>
  141. <appender-ref ref="INFO_FILE"/>
  142. <appender-ref ref="WARN_FILE"/>
  143. <appender-ref ref="ERROR_FILE"/>
  144. </root>
  145. </springProfile>
  146. <!-- 生产环境: 输出文件 -->
  147. <springProfile name="prod">
  148. <root level="info">
  149. <appender-ref ref="DEBUG_FILE"/>
  150. <appender-ref ref="INFO_FILE"/>
  151. <appender-ref ref="WARN_FILE"/>
  152. <appender-ref ref="ERROR_FILE"/>
  153. </root>
  154. </springProfile>
  155. </configuration>