logback-spring.xml 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <configuration>
  2. <property name="LOG_PATH" value="${LOG_PATH:-./logs}" />
  3. <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{requestId:-}] [%X{traceId:-}] [%X{spanId:-}] %-5level %logger{36} - %msg%n" />
  4. <!-- Console -->
  5. <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  6. <encoder>
  7. <pattern>${LOG_PATTERN}</pattern>
  8. <charset>UTF-8</charset>
  9. </encoder>
  10. </appender>
  11. <!-- Detailed rolling file -->
  12. <appender name="FILE_DETAIL" class="ch.qos.logback.core.rolling.RollingFileAppender">
  13. <file>${LOG_PATH}/app.log</file>
  14. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  15. <fileNamePattern>${LOG_PATH}/app.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
  16. <maxHistory>30</maxHistory>
  17. </rollingPolicy>
  18. <encoder>
  19. <pattern>${LOG_PATTERN}</pattern>
  20. <charset>UTF-8</charset>
  21. </encoder>
  22. </appender>
  23. <appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
  24. <appender-ref ref="FILE_DETAIL" />
  25. <queueSize>512</queueSize>
  26. <discardingThreshold>0</discardingThreshold>
  27. </appender>
  28. <!-- Error-only rolling file -->
  29. <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
  30. <file>${LOG_PATH}/error.log</file>
  31. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  32. <level>WARN</level>
  33. </filter>
  34. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  35. <fileNamePattern>${LOG_PATH}/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
  36. <maxHistory>90</maxHistory>
  37. </rollingPolicy>
  38. <encoder>
  39. <pattern>${LOG_PATTERN}</pattern>
  40. <charset>UTF-8</charset>
  41. </encoder>
  42. </appender>
  43. <appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
  44. <appender-ref ref="FILE_ERROR" />
  45. <queueSize>256</queueSize>
  46. </appender>
  47. <!-- Application logger -->
  48. <logger name="work.baiyun.chronicdiseaseapp" level="DEBUG" additivity="false">
  49. <appender-ref ref="CONSOLE" />
  50. <appender-ref ref="ASYNC_FILE" />
  51. </logger>
  52. <!-- Third-party libraries reduce noise -->
  53. <logger name="org.springframework" level="INFO" />
  54. <logger name="org.hibernate" level="WARN" />
  55. <logger name="com.zaxxer.hikari" level="WARN" />
  56. <logger name="org.apache" level="WARN" />
  57. <logger name="org.mybatis" level="WARN" />
  58. <!-- SQL logs (if needed) -->
  59. <logger name="work.baiyun.chronicdiseaseapp.mapper" level="DEBUG">
  60. <appender-ref ref="ASYNC_FILE" />
  61. </logger>
  62. <root level="INFO">
  63. <appender-ref ref="CONSOLE" />
  64. <appender-ref ref="ASYNC_FILE" />
  65. <appender-ref ref="ASYNC_ERROR" />
  66. </root>
  67. </configuration>