日志配置文件

logback-spring.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- scan 配置文件如果发生改变,将会被重新加载 scanPeriod 检测间隔时间-->
  3. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  4. <contextName>logback</contextName>
  5. <include resource="org/springframework/boot/logging/logback/base.xml"/>
  6. <!-- 日志存储级别 -->
  7. <springProperty scope="context" name="rootlevel" source="logging.level.root" />
  8. <springProperty scope="context" name="busilevel" source="logging.level.com.xncoding" />
  9. <!-- 日志存储路径 -->
  10. <springProperty scope="context" name="logPath" source="logging.path" />
  11. <!-- 普通日志 -->
  12. <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  13. <file>${logPath}/info.log</file>
  14. <!-- 循环政策:基于时间创建日志文件 -->
  15. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  16. <!-- 日志命名:单个文件大于128MB 按照时间+自增i 生成log文件 -->
  17. <fileNamePattern>${logPath}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  18. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  19. <maxFileSize>128MB</maxFileSize>
  20. </timeBasedFileNamingAndTriggeringPolicy>
  21. <!-- 最大保存时间:30天-->
  22. <maxHistory>30</maxHistory>
  23. </rollingPolicy>
  24. <append>true</append>
  25. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  26. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %p ${PID:-} --- [%15thread] %logger:%-3L : %msg%n</pattern>
  27. <charset>utf-8</charset>
  28. </encoder>
  29. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  30. <level>info</level>
  31. <onMatch>ACCEPT</onMatch>
  32. <onMismatch>DENY</onMismatch>
  33. </filter>
  34. </appender>
  35. <!-- 错误日志 -->
  36. <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  37. <file>${logPath}/error.log</file>
  38. <!-- 循环政策:基于时间创建日志文件 -->
  39. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  40. <!-- 日志命名:单个文件大于2MB 按照时间+自增i 生成log文件 -->
  41. <fileNamePattern>${logPath}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  42. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  43. <maxFileSize>2MB</maxFileSize>
  44. </timeBasedFileNamingAndTriggeringPolicy>
  45. <!-- 最大保存时间:180天-->
  46. <maxHistory>180</maxHistory>
  47. </rollingPolicy>
  48. <append>true</append>
  49. <!-- 日志格式 -->
  50. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  51. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %p ${PID:-} --- [%15thread] %logger:%-3L : %msg%n</pattern>
  52. <charset>utf-8</charset>
  53. </encoder>
  54. <!-- 日志级别过滤器 -->
  55. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  56. <!-- 过滤的级别 -->
  57. <level>ERROR</level>
  58. <!-- 匹配时的操作:接收(记录) -->
  59. <onMatch>ACCEPT</onMatch>
  60. <!-- 不匹配时的操作:拒绝(不记录) -->
  61. <onMismatch>DENY</onMismatch>
  62. </filter>
  63. </appender>
  64. <!-- 控制台 -->
  65. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  66. <!-- 日志格式 -->
  67. <encoder>
  68. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %p ${PID:-} --- [%15thread] %logger:%-3L : %msg%n</pattern>
  69. <charset>utf-8</charset>
  70. </encoder>
  71. <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
  72. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  73. <level>DEBUG</level>
  74. </filter>
  75. </appender>
  76. <!-- 屏蔽kafka的警告 -->
  77. <logger name="org.apache.kafka" level="ERROR"/>
  78. <!-- additivity 避免执行2次 -->
  79. <logger name="com.xncoding" level="${busilevel}" additivity="false">
  80. <appender-ref ref="STDOUT"/>
  81. <appender-ref ref="INFO_FILE"/>
  82. <appender-ref ref="ERROR_FILE"/>
  83. </logger>
  84. <root level="${rootlevel}">
  85. <appender-ref ref="INFO_FILE"/>
  86. <appender-ref ref="ERROR_FILE"/>
  87. </root>
  88. </configuration>

application.yml

  1. logging:
  2. level:
  3. root: INFO
  4. com.xncoding: DEBUG
  5. path: D:/logs/springboot-aop
  6. config: classpath:logback-spring.xml