logback-spring.xml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <!-- 项目名称 -->
  4. <property name="APPDIR" value="ltapi-service"/>
  5. <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
  6. <property name="LOG_PATH" value="../logs"/>
  7. <!-- 彩色日志 -->
  8. <!-- 彩色日志依赖的渲染类 -->
  9. <conversionRule conversionWord="clr"
  10. converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
  11. <conversionRule conversionWord="wex"
  12. converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
  13. <conversionRule conversionWord="wEx"
  14. converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
  15. <!-- 彩色日志格式 -->
  16. <!--<property name="CONSOLE_LOG_PATTERN"-->
  17. <!--value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(-&#45;&#45;){faint} %clr([%15.15t]){faint} %clr(%logger){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>-->
  18. <!--包名输出缩进对齐-->
  19. <property name="CONSOLE_LOG_PATTERN"
  20. 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}}"/>
  21. <!-- 日志记录器,日期滚动记录
  22. ERROR 级别
  23. -->
  24. <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
  25. <!-- 正在记录的日志文件的路径及文件名 -->
  26. <file>${LOG_PATH}/${APPDIR}/${APPDIR}_error.log</file>
  27. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  28. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  29. <!-- 归档的日志文件的路径,例如今天是1992-11-06日志,当前写的日志文件路径为file节点指定,
  30. 可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  31. 而1992-11-06的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  32. <fileNamePattern>${LOG_PATH}/${APPDIR}/error/${APPDIR}-error-%d{yyyy-MM-dd}.%i.log
  33. </fileNamePattern>
  34. <!-- 保留日志天数 -->
  35. <maxHistory>30</maxHistory>
  36. <!-- 除按日志记录之外,还配置了日志文件不能超过10MB,若超过10MB,日志文件会以索引0开始,
  37. 命名日志文件,例如log-error-1992-11-06.0.log -->
  38. <timeBasedFileNamingAndTriggeringPolicy
  39. class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  40. <maxFileSize>10MB</maxFileSize>
  41. </timeBasedFileNamingAndTriggeringPolicy>
  42. </rollingPolicy>
  43. <!-- 追加方式记录日志 -->
  44. <append>true</append>
  45. <!-- 日志文件的格式 -->
  46. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  47. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%n
  48. </pattern>
  49. <charset>utf-8</charset>
  50. </encoder>
  51. <!-- 此日志文件记录error级别的 -->
  52. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  53. <level>error</level>
  54. <onMatch>ACCEPT</onMatch>
  55. <onMismatch>DENY</onMismatch>
  56. </filter>
  57. </appender>
  58. <!-- 日志记录器,日期滚动记录
  59. WARN 级别
  60. -->
  61. <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
  62. <!-- 正在记录的日志文件的路径及文件名 -->
  63. <file>${LOG_PATH}/${APPDIR}/${APPDIR}_warn.log</file>
  64. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  65. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  66. <!-- 归档的日志文件的路径,例如今天1992-11-06日志,当前写的日志文件路径为file节点指定,
  67. 可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  68. 而1992-11-06的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  69. <fileNamePattern>${LOG_PATH}/${APPDIR}/warn/${APPDIR}-warn-%d{yyyy-MM-dd}.%i.log
  70. </fileNamePattern>
  71. <!-- 保留日志天数 -->
  72. <maxHistory>15</maxHistory>
  73. <!-- 除按日志记录之外,还配置了日志文件不能超过10MB,若超过10MB,日志文件会以索引0开始,
  74. 命名日志文件,例如log-warn-1992-11-06.0.log -->
  75. <timeBasedFileNamingAndTriggeringPolicy
  76. class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  77. <maxFileSize>10MB</maxFileSize>
  78. </timeBasedFileNamingAndTriggeringPolicy>
  79. </rollingPolicy>
  80. <!-- 追加方式记录日志 -->
  81. <append>true</append>
  82. <!-- 日志文件的格式 -->
  83. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  84. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%n
  85. </pattern>
  86. <charset>utf-8</charset>
  87. </encoder>
  88. <!-- 此日志文件只记录warn级别的 -->
  89. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  90. <level>warn</level>
  91. <onMatch>ACCEPT</onMatch>
  92. <onMismatch>DENY</onMismatch>
  93. </filter>
  94. </appender>
  95. <!-- 日志记录器,日期滚动记录
  96. INFO 级别
  97. -->
  98. <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
  99. <!-- 正在记录的日志文件的路径及文件名 -->
  100. <file>${LOG_PATH}/${APPDIR}/${APPDIR}_info.log</file>
  101. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  102. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  103. <!-- 归档的日志文件的路径,例如今天是1992-11-06日志,当前写的日志文件路径为file节点指定,
  104. 可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  105. 而1992-11-06的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  106. <fileNamePattern>${LOG_PATH}/${APPDIR}/info/${APPDIR}-info-%d{yyyy-MM-dd}.%i.log
  107. </fileNamePattern>
  108. <!-- 保留日志天数 -->
  109. <maxHistory>15</maxHistory>
  110. <!-- 除按日志记录之外,还配置了日志文件不能超过10MB,若超过10MB,日志文件会以索引0开始,
  111. 命名日志文件,例如log-info-1992-11-06.0.log -->
  112. <timeBasedFileNamingAndTriggeringPolicy
  113. class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  114. <maxFileSize>10MB</maxFileSize>
  115. </timeBasedFileNamingAndTriggeringPolicy>
  116. </rollingPolicy>
  117. <!-- 追加方式记录日志 -->
  118. <append>true</append>
  119. <!-- 日志文件的格式 -->
  120. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  121. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%n
  122. </pattern>
  123. <charset>utf-8</charset>
  124. </encoder>
  125. <!-- 此日志文件只记录info级别的 -->
  126. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  127. <level>info</level>
  128. <onMatch>ACCEPT</onMatch>
  129. <onMismatch>DENY</onMismatch>
  130. </filter>
  131. </appender>
  132. <!-- 日志记录器,日期滚动记录
  133. DEBUG 级别
  134. -->
  135. <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
  136. <!-- 正在记录的日志文件的路径及文件名 -->
  137. <file>${LOG_PATH}/${APPDIR}/${APPDIR}_debug.log</file>
  138. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  139. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  140. <!-- 归档的日志文件的路径,例如今天是1992-11-06日志,当前写的日志文件路径为file节点指定,
  141. 可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  142. 而1992-11-06的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  143. <fileNamePattern>${LOG_PATH}/${APPDIR}/debug/${APPDIR}-debug-%d{yyyy-MM-dd}.%i.log
  144. </fileNamePattern>
  145. <!-- 保留日志天数 -->
  146. <maxHistory>15</maxHistory>
  147. <!-- 除按日志记录之外,还配置了日志文件不能超过10MB,若超过10MB,日志文件会以索引0开始,
  148. 命名日志文件,例如log-debug-1992-11-06.0.log -->
  149. <timeBasedFileNamingAndTriggeringPolicy
  150. class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  151. <maxFileSize>10MB</maxFileSize>
  152. </timeBasedFileNamingAndTriggeringPolicy>
  153. </rollingPolicy>
  154. <!-- 追加方式记录日志 -->
  155. <append>true</append>
  156. <!-- 日志文件的格式 -->
  157. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  158. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%n
  159. </pattern>
  160. <charset>utf-8</charset>
  161. </encoder>
  162. <!-- 此日志文件只记录debug级别的 -->
  163. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  164. <level>debug</level>
  165. <onMatch>ACCEPT</onMatch>
  166. <onMismatch>DENY</onMismatch>
  167. </filter>
  168. </appender>
  169. <!-- ConsoleAppender 控制台输出日志 -->
  170. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  171. <!--encoder 默认配置为PatternLayoutEncoder-->
  172. <encoder>
  173. <pattern>${CONSOLE_LOG_PATTERN}</pattern>
  174. <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level -&#45;&#45; [%thread] %logger Line:%-3L - %msg%n</pattern>-->
  175. <charset>utf-8</charset>
  176. </encoder>
  177. <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
  178. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  179. <level>debug</level>
  180. </filter>
  181. </appender>
  182. <!--&lt;!&ndash;输出到mysql数据库的appender配置 &ndash;&gt;-->
  183. <!--<appender name="db" class="ch.qos.logback.classic.db.DBAppender">-->
  184. <!--<connectionSource-->
  185. <!--class="ch.qos.logback.core.db.DriverManagerConnectionSource">-->
  186. <!--<driverClass>com.mysql.cj.jdbc.Driver</driverClass>-->
  187. <!--<url>jdbc:mysql://120.77.222.42:3306/logback_member?characterEncoding=utf8</url>-->
  188. <!--<user>root</user>-->
  189. <!--<password>a123456789</password>-->
  190. <!--</connectionSource>-->
  191. <!--</appender>-->
  192. <!-- FrameworkServlet日志-->
  193. <logger name="org.springframework" level="WARN"/>
  194. <!-- mybatis日志打印-->
  195. <logger name="org.apache.ibatis" level="DEBUG"/>
  196. <logger name="java.sql" level="DEBUG"/>
  197. <!-- 项目 mapper 路径
  198. console控制台显示sql语句:STDOUT.filter.level -> debug级别
  199. -->
  200. <logger name="com.diagbot.mapper" level="DEBUG"/>
  201. <appender name="LOGSTASHDEV" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  202. <destination>192.168.2.236:5044</destination>
  203. <!-- encoder必须配置,有多种可选 -->
  204. <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
  205. <customFields>{"appname":"ltapi-service"}</customFields>
  206. </encoder>
  207. </appender>
  208. <appender name="LOGSTASHTEST" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  209. <destination>192.168.2.241:5044</destination>
  210. <!-- encoder必须配置,有多种可选 -->
  211. <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
  212. <customFields>{"appname":"ltapi-service"}</customFields>
  213. </encoder>
  214. </appender>
  215. <appender name="LOGSTASHPRE" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  216. <destination>192.168.2.121:5044</destination>
  217. <!-- encoder必须配置,有多种可选 -->
  218. <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
  219. <customFields>{"appname":"ltapi-service"}</customFields>
  220. </encoder>
  221. </appender>
  222. <appender name="LOGSTASHPRO" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  223. <destination>192.168.2.122:5044</destination>
  224. <!-- encoder必须配置,有多种可选 -->
  225. <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
  226. <customFields>{"appname":"ltapi-service"}</customFields>
  227. </encoder>
  228. </appender>
  229. <!-- 本地环境下的日志配置 -->
  230. <springProfile name="local">
  231. <root level="INFO">
  232. <appender-ref ref="ERROR"/>
  233. <appender-ref ref="WARN"/>
  234. <appender-ref ref="INFO"/>
  235. <appender-ref ref="DEBUG"/>
  236. <appender-ref ref="STDOUT"/>
  237. </root>
  238. </springProfile>
  239. <!-- 开发环境下的日志配置 -->
  240. <springProfile name="dev">
  241. <root level="INFO">
  242. <appender-ref ref="ERROR"/>
  243. <appender-ref ref="WARN"/>
  244. <appender-ref ref="INFO"/>
  245. <appender-ref ref="DEBUG"/>
  246. <appender-ref ref="STDOUT"/>
  247. <appender-ref ref="LOGSTASHDEV"/>
  248. </root>
  249. </springProfile>
  250. <!-- 测试环境下的日志配置 -->
  251. <springProfile name="test">
  252. <root level="INFO">
  253. <appender-ref ref="ERROR"/>
  254. <appender-ref ref="WARN"/>
  255. <appender-ref ref="INFO"/>
  256. <appender-ref ref="DEBUG"/>
  257. <appender-ref ref="STDOUT"/>
  258. <appender-ref ref="LOGSTASHTEST"/>
  259. </root>
  260. </springProfile>
  261. <!-- 预发布环境下的日志配置 -->
  262. <springProfile name="pre">
  263. <root level="INFO">
  264. <appender-ref ref="ERROR"/>
  265. <appender-ref ref="WARN"/>
  266. <appender-ref ref="INFO"/>
  267. <appender-ref ref="DEBUG"/>
  268. <appender-ref ref="STDOUT"/>
  269. <appender-ref ref="LOGSTASHPRE"/>
  270. </root>
  271. </springProfile>
  272. <!-- 生产环境下的日志配置 -->
  273. <springProfile name="pro">
  274. <root level="INFO">
  275. <appender-ref ref="ERROR"/>
  276. <appender-ref ref="WARN"/>
  277. <appender-ref ref="INFO"/>
  278. <appender-ref ref="DEBUG"/>
  279. <appender-ref ref="STDOUT"/>
  280. <appender-ref ref="LOGSTASHPRO"/>
  281. </root>
  282. </springProfile>
  283. </configuration>