logback-spring.xml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  3. <statusListener class="ch.qos.logback.core.status.NopStatusListener"/>
  4. <!-- 日志存放路径 -->
  5. <property name="log.path" value="logs"/>
  6. <springProperty scope="context" name="springAppName" source="spring.application.name"/>
  7. <!-- 日志输出格式 -->
  8. <property name="log.pattern"
  9. value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} %tid - [%method,%line] - %msg%n"/>:ss} %-5level
  10. ${springAppName:-} %thread %logger %msg%n"/>
  11. <!-- 控制台输出 -->
  12. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  13. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  14. <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
  15. <pattern>${log.pattern}</pattern>
  16. </layout>
  17. <charset>utf8</charset>
  18. </encoder>
  19. </appender>
  20. <!-- 系统日志输出 -->
  21. <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
  22. <file>${log.path}/log.log</file>
  23. <!-- 循环政策:基于时间创建日志文件 -->
  24. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  25. <!-- 日志文件名格式 -->
  26. <fileNamePattern>${log.path}/log.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
  27. <!-- 日志最大的历史 3天 -->
  28. <maxHistory>7</maxHistory>
  29. <!--单个日志文件的最大体积-->
  30. <maxFileSize>100MB</maxFileSize>
  31. <!--控制所有归档日志文件的总大小-->
  32. <totalSizeCap>500MB</totalSizeCap>
  33. <!--是否在应用启动的时候删除历史日志-->
  34. <cleanHistoryOnStart>true</cleanHistoryOnStart>
  35. </rollingPolicy>
  36. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  37. <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
  38. <pattern>${log.pattern}</pattern>
  39. </layout>
  40. </encoder>
  41. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  42. <!-- 过滤的级别 -->
  43. <level>info</level>
  44. <!-- 匹配时的操作:接收(记录) -->
  45. <onMatch>ACCEPT</onMatch>
  46. <!-- 不匹配时的操作:拒绝(不记录) -->
  47. <onMismatch>DENY</onMismatch>
  48. </filter>
  49. </appender>
  50. <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
  51. <file>${log.path}/error.log</file>
  52. <!-- 循环政策:基于时间创建日志文件 -->
  53. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  54. <!-- 日志文件名格式 -->
  55. <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
  56. <!-- 日志最大的历史 1天 -->
  57. <maxHistory>3</maxHistory>
  58. <!--单个日志文件的最大体积-->
  59. <maxFileSize>100MB</maxFileSize>
  60. <!--控制所有归档日志文件的总大小-->
  61. <totalSizeCap>500MB</totalSizeCap>
  62. <!--是否在应用启动的时候删除历史日志-->
  63. <cleanHistoryOnStart>true</cleanHistoryOnStart>
  64. </rollingPolicy>
  65. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  66. <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
  67. <pattern>${log.pattern}</pattern>
  68. </layout>
  69. </encoder>
  70. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  71. <!-- 过滤的级别 -->
  72. <level>error</level>
  73. <!-- 匹配时的操作:接收(记录) -->
  74. <onMatch>ACCEPT</onMatch>
  75. <!-- 不匹配时的操作:拒绝(不记录) -->
  76. <onMismatch>DENY</onMismatch>
  77. </filter>
  78. </appender>
  79. <!--logstash配置-->
  80. <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  81. <destination>127.0.0.1:8083</destination>-->
  82. <!-- 日志输出编码 -->
  83. <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
  84. <providers>
  85. <timestamp>
  86. <timeZone>UTC</timeZone>
  87. </timestamp>
  88. <pattern>
  89. <pattern>
  90. {
  91. "logLevel": "%level",
  92. "serviceName": "${springAppName:-}",
  93. "pid": "${PID:-}",
  94. "thread": "%thread",
  95. "class": "%logger{40}",
  96. "rest": "%message"
  97. }
  98. </pattern>
  99. </pattern>
  100. </providers>
  101. </encoder>
  102. <!-- <springProfile name="dev">-->
  103. <!-- <destination>127.0.0.1:80821</destination>-->
  104. <!-- &lt;!&ndash; 日志输出编码 &ndash;&gt;-->
  105. <!-- <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">-->
  106. <!-- <providers>-->
  107. <!-- <timestamp>-->
  108. <!-- <timeZone>UTC</timeZone>-->
  109. <!-- </timestamp>-->
  110. <!-- <pattern>-->
  111. <!-- <pattern>-->
  112. <!-- {-->
  113. <!-- "logLevel": "%level",-->
  114. <!-- "serviceName": "${springAppName:-}",-->
  115. <!-- "pid": "${PID:-}",-->
  116. <!-- "thread": "%thread",-->
  117. <!-- "class": "%logger{40}",-->
  118. <!-- "rest": "%message"-->
  119. <!-- }-->
  120. <!-- </pattern>-->
  121. <!-- </pattern>-->
  122. <!-- </providers>-->
  123. <!-- </encoder>-->
  124. <!-- </springProfile>-->
  125. <!-- <springProfile name="prod">-->
  126. <!-- <destination>127.0.0.1:80821</destination>-->
  127. <!-- &lt;!&ndash; 日志输出编码 &ndash;&gt;-->
  128. <!-- <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">-->
  129. <!-- <providers>-->
  130. <!-- <timestamp>-->
  131. <!-- <timeZone>UTC</timeZone>-->
  132. <!-- </timestamp>-->
  133. <!-- <pattern>-->
  134. <!-- <pattern>-->
  135. <!-- {-->
  136. <!-- "logLevel": "%level",-->
  137. <!-- "serviceName": "${springAppName:-}",-->
  138. <!-- "pid": "${PID:-}",-->
  139. <!-- "thread": "%thread",-->
  140. <!-- "class": "%logger{40}",-->
  141. <!-- "rest": "%message"-->
  142. <!-- }-->
  143. <!-- </pattern>-->
  144. <!-- </pattern>-->
  145. <!-- </providers>-->
  146. <!-- </encoder>-->
  147. <!-- </springProfile>-->
  148. <!--<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>-->
  149. </appender>
  150. <!-- 日志传输到skywalking中的appender,通过qrpc传输 -->
  151. <appender name="gpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
  152. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  153. <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
  154. <Pattern>${log.pattern}</Pattern>
  155. </layout>
  156. </encoder>
  157. </appender>
  158. <!--系统操作日志-->
  159. <root level="info">
  160. <appender-ref ref="file_info"/>
  161. <appender-ref ref="file_error"/>
  162. <appender-ref ref="console"/>
  163. <appender-ref ref="gpc-log"/>
  164. <appender-ref ref="LOGSTASH"/>
  165. </root>
  166. </configuration>