logback-spring.xml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <contextName>${APP_NAME}</contextName>
  4. <springProperty name="APP_NAME" scope="context" source="spring.application.name"/>
  5. <springProperty name="LOG_FILE" scope="context" source="logging.file" defaultValue="./logs/${APP_NAME}"/>
  6. <springProperty name="LOG_POINT_FILE" scope="context" source="logging.file" defaultValue="./logs/point"/>
  7. <springProperty name="LOG_MAXFILESIZE" scope="context" source="logback.filesize" defaultValue="50MB"/>
  8. <springProperty name="LOG_FILEMAXDAY" scope="context" source="logback.filemaxday" defaultValue="7"/>
  9. <springProperty name="ServerIP" scope="context" source="server.address" defaultValue="0.0.0.0"/>
  10. <springProperty name="ServerPort" scope="context" source="server.port" defaultValue="0000"/>
  11. <!-- 彩色日志 -->
  12. <!-- 彩色日志依赖的渲染类 -->
  13. <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
  14. <conversionRule conversionWord="wex"
  15. converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
  16. <conversionRule conversionWord="wEx"
  17. converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
  18. <!-- 彩色日志格式 -->
  19. <property name="CONSOLE_LOG_PATTERN"
  20. value="[${APP_NAME}:${ServerIP}:${ServerPort}] [%clr(%X{traceid}){yellow},%clr(%X{X-B3-TraceId}){yellow}] %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%level){blue} %clr(${PID}){magenta} %clr([%thread]){orange} %clr(%logger){cyan} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
  21. <property name="CONSOLE_LOG_PATTERN_NO_COLOR"
  22. value="[${APP_NAME}:${ServerIP}:${ServerPort}] [%X{traceid},%X{X-B3-TraceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} %level ${PID} [%thread] %logger %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
  23. <!-- 控制台日志 -->
  24. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  25. <withJansi>true</withJansi>
  26. <encoder>
  27. <pattern>${CONSOLE_LOG_PATTERN}</pattern>
  28. <charset>UTF-8</charset>
  29. </encoder>
  30. </appender>
  31. <!-- 按照每天生成常规日志文件 -->
  32. <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
  33. <file>${LOG_FILE}/${APP_NAME}-error.log</file>
  34. <!-- 基于时间的分包策略 -->
  35. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  36. <fileNamePattern>${LOG_FILE}/${APP_NAME}-error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  37. <maxFileSize>100MB</maxFileSize>
  38. <!--保留时间,单位:天-->
  39. <maxHistory>7</maxHistory>
  40. </rollingPolicy>
  41. <encoder>
  42. <pattern>${CONSOLE_LOG_PATTERN_NO_COLOR}</pattern>
  43. <charset>UTF-8</charset>
  44. </encoder>
  45. <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  46. <MaxFileSize>100MB</MaxFileSize>
  47. </triggeringPolicy>
  48. <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->
  49. <level>ERROR</level>
  50. <onMatch>ACCEPT</onMatch>
  51. <onMismatch>DENY</onMismatch>
  52. </filter>
  53. </appender>
  54. <!-- 按照每天生成常规日志文件 -->
  55. <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
  56. <file>${LOG_FILE}/${APP_NAME}-info.log</file>
  57. <!-- 基于时间的分包策略 -->
  58. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  59. <fileNamePattern>${LOG_FILE}/${APP_NAME}-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  60. <maxFileSize>100MB</maxFileSize>
  61. <!--保留时间,单位:天-->
  62. <maxHistory>7</maxHistory>
  63. </rollingPolicy>
  64. <encoder>
  65. <pattern>${CONSOLE_LOG_PATTERN_NO_COLOR}</pattern>
  66. <charset>UTF-8</charset>
  67. </encoder>
  68. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  69. <level>INFO</level>
  70. <onMatch>ACCEPT</onMatch>
  71. <onMismatch>DENY</onMismatch>
  72. </filter>
  73. </appender>
  74. <!-- 按照每天生成常规日志文件 -->
  75. <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
  76. <file>${LOG_FILE}/${APP_NAME}-debug.log</file>
  77. <!-- 基于时间的分包策略 -->
  78. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  79. <fileNamePattern>${LOG_FILE}/${APP_NAME}-debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  80. <maxFileSize>100MB</maxFileSize>
  81. <!--保留时间,单位:天-->
  82. <maxHistory>7</maxHistory>
  83. </rollingPolicy>
  84. <encoder>
  85. <pattern>${CONSOLE_LOG_PATTERN_NO_COLOR}</pattern>
  86. <charset>UTF-8</charset>
  87. </encoder>
  88. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  89. <level>DEBUG</level>
  90. <onMatch>ACCEPT</onMatch>
  91. <onMismatch>DENY</onMismatch>
  92. </filter>
  93. </appender>
  94. <root level="INFO">
  95. <appender-ref ref="STDOUT"/>
  96. <appender-ref ref="ERROR"/>
  97. <appender-ref ref="INFO"/>
  98. <appender-ref ref="DEBUG"/>
  99. </root>
  100. </configuration>