logback-spring.xml 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. ~ Copyright (c) 2021 sky4cloud Authors. All Rights Reserved.
  4. ~
  5. ~ Licensed under the Apache License, Version 2.0 (the "License");
  6. ~ you may not use this file except in compliance with the License.
  7. ~ You may obtain a copy of the License at
  8. ~
  9. ~ http://www.apache.org/licenses/LICENSE-2.0
  10. ~
  11. ~ Unless required by applicable law or agreed to in writing, software
  12. ~ distributed under the License is distributed on an "AS IS" BASIS,
  13. ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. ~ See the License for the specific language governing permissions and
  15. ~ limitations under the License.
  16. -->
  17. <configuration debug="false" scan="false">
  18. <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
  19. <property name="log.path" value="logs/${spring.application.name}"/>
  20. <!-- 彩色日志格式 -->
  21. <property name="CONSOLE_LOG_PATTERN"
  22. value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
  23. <!-- 彩色日志依赖的渲染类 -->
  24. <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
  25. <conversionRule conversionWord="wex"
  26. converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
  27. <conversionRule conversionWord="wEx"
  28. converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
  29. <!-- Console log output -->
  30. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  31. <encoder>
  32. <pattern>${CONSOLE_LOG_PATTERN}</pattern>
  33. </encoder>
  34. </appender>
  35. <!-- Log file debug output -->
  36. <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
  37. <file>${log.path}/debug.log</file>
  38. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  39. <fileNamePattern>${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
  40. <maxFileSize>50MB</maxFileSize>
  41. <maxHistory>30</maxHistory>
  42. </rollingPolicy>
  43. <encoder>
  44. <pattern>${CONSOLE_LOG_PATTERN}</pattern>
  45. </encoder>
  46. </appender>
  47. <!-- Log file error output -->
  48. <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
  49. <file>${log.path}/error.log</file>
  50. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  51. <fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
  52. <maxFileSize>50MB</maxFileSize>
  53. <maxHistory>30</maxHistory>
  54. </rollingPolicy>
  55. <encoder>
  56. <pattern>${CONSOLE_LOG_PATTERN}</pattern>
  57. </encoder>
  58. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  59. <level>ERROR</level>
  60. </filter>
  61. </appender>
  62. <appender name="aliyun" class="com.aliyun.openservices.log.logback.LoghubAppender">
  63. <!-- Configure account and network -->
  64. <endpoint>cn-chengdu.log.aliyuncs.com</endpoint>
  65. <!-- 填写sls key密钥 -->
  66. <accessKeyId>LTAI5tLsj8MPeZgqiR3omZtk</accessKeyId>
  67. <accessKeySecret>Dj710GX7H4KHEfopzboT1g57a7RGTH</accessKeySecret>
  68. <project>kxs-logs</project>
  69. <!--logStore名称 -->
  70. <logStore>kxs-store</logStore>
  71. <!-- Optional parameters -->
  72. <!-- 主题名称 -->
  73. <topic>${spring.application.name}</topic>
  74. <!-- #单个 producer 实例能缓存的日志大小上限,默认为 100MB。-->
  75. <totalSizeInBytes>104857600</totalSizeInBytes>
  76. <maxBlockMs>0</maxBlockMs>
  77. <!-- 执行日志发送任务的线程池大小,默认为可用处理器个数。-->
  78. <ioThreadCount>8</ioThreadCount>
  79. <batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>
  80. <batchCountThreshold>4096</batchCountThreshold>
  81. <lingerMs>2000</lingerMs>
  82. <retries>10</retries>
  83. <baseRetryBackoffMs>100</baseRetryBackoffMs>
  84. <maxRetryBackoffMs>50000</maxRetryBackoffMs>
  85. <!-- 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 -->
  86. <encoder>
  87. <pattern>${CONSOLE_LOG_PATTERN}</pattern>
  88. </encoder>
  89. <!-- Optional parameters -->
  90. <timeFormat>yyyy-MM-dd'T'HH:mmZ</timeFormat>
  91. <!-- 可选项 设置时区 -->
  92. <timeZone>Asia/Shanghai</timeZone>
  93. <mdcFields>
  94. TraceId,#####
  95. </mdcFields>
  96. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  97. <level>ERROR</level>
  98. <level>INFO</level>
  99. </filter>
  100. <!-- 屏蔽transfer模块 -->
  101. <logger name="com.kxs.transfer.api" level="OFF"/>
  102. </appender>
  103. <!--为了防止进程退出时,内存中的数据丢失,请加上此选项-->
  104. <shutdownHook class="ch.qos.logback.core.hook.DefaultShutdownHook"/>
  105. <!-- 可用来获取StatusManager中的状态 -->
  106. <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener"/>
  107. <!-- 解决debug模式下循环发送的问题 -->
  108. <logger name="org.apache.http.impl.conn.Wire" level="WARN" />
  109. <!-- 引入sls日志 -->
  110. <springProfile name="dev">
  111. <root level="INFO">
  112. <appender-ref ref="console"/>
  113. <appender-ref ref="aliyun" />
  114. </root>
  115. </springProfile>
  116. <!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
  117. <springProfile name="test">
  118. <root level="INFO">
  119. <appender-ref ref="console"/>
  120. <appender-ref ref="debug"/>
  121. <appender-ref ref="error"/>
  122. </root>
  123. </springProfile>
  124. <springProfile name="prod">
  125. <root level="INFO">
  126. <appender-ref ref="console"/>
  127. <appender-ref ref="debug"/>
  128. <appender-ref ref="error"/>
  129. <appender-ref ref="aliyun" />
  130. </root>
  131. </springProfile>
  132. </configuration>