0


logback-spring.xml 的配置

1、application.properties

  1. # 日志配置
  2. logging.config=classpath:logback-spring.xml

2、logback-spring.xml 配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration scan="true" scanPeriod="10 seconds">
  3. <!-- logger上下文名称(根据业务修改) -->
  4. <contextName>MyContextName</contextName>
  5. <!-- 定义了一个名为serverName的属性,它的值来自于logging.file.name,如果没有找到该属性默认为MyServerName(根据业务修改) -->
  6. <springProperty name="serverName" source="logging.file.name" defaultValue="MyServerName"/>
  7. <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/>
  8. <!-- 彩色日志依赖的渲染类 -->
  9. <!-- 定义了一个名为clr的转换规则,它使用org.springframework.boot.logging.logback.ColorConverter类进行转换,这个元素通常用于将日志输出中的文本着色,以便更容易地区分不同的日志级别或其他信息 -->
  10. <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
  11. <!-- WhitespaceThrowableProxyConverter和ExtendedWhitespaceThrowableProxyConverter都是用于将异常信息转换为字符串,并将其中的换行符替换为空格,以便更容易地在日志输出中显示的类。它们之间的区别在于,ExtendedWhitespaceThrowableProxyConverter在输出异常信息时会包含更多的详细信息,例如异常的类名、方法名和行号等 -->
  12. <!-- 定义了一个名为wex的转换规则,它使用org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter类进行转换,这个元素通常用于将异常信息转换为字符串,并将其中的换行符替换为空格,以便更容易地在日志输出中显示 -->
  13. <conversionRule conversionWord="wex"
  14. converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
  15. <!-- 定义了一个名为wEx的转换规则,它使用org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter类进行转换,这个元素通常用于将异常信息转换为字符串,并将其中的换行符替换为空格,以便更容易地在日志输出中显示 -->
  16. <conversionRule conversionWord="wEx"
  17. converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
  18. <!-- 彩色日志格式 -->
  19. <!-- value值是日志输出模板, :-是属性名和其默认值之间的分隔符,作用与:相同 -->
  20. <!-- 定义日志输出格式的转换规则,%d{yyyy-MM-dd HH:mm:ss.SSS}表示日期和时间,%clr表示将输出文本着色,{faint}表示使用淡色 -->
  21. <!-- %5p表示日志级别输出右对齐,左边以空格填充 -->
  22. <!-- ${PID:- }表示进程ID,%clr表示将输出文本着色,{magenta}表示使用洋红色 -->
  23. <!---表示一个分隔符 -->
  24. <!-- %t:显示产生该日志的线程名;%15:若字符长度小于15,则左边用空格填充;%.15:若字符长度超过15,截去多余字符 -->
  25. <!-- %-40:若字符长度小于40,则右边用空格填充;%.40:若字符长度超过40,截去多余字符;logger{39}对应的是“logging.WARNING”级别。具体来说,Python的logging模块定义了以下几个级别(从低到高):NOTSET、DEBUG、INFO、WARNING、ERROR、CRITICAL。因此,logger{39}表示的是WARNING级别,即日志记录器会记录所有WARNING级别及以上的日志信息 -->
  26. <!-- %m表示日志消息;%n表示换行符;${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}表示异常信息。如果日志输出中包含异常信息,这个规则将会将其转换为字符串,并将其中的换行符替换为空格,以便更容易地在日志输出中显示 -->
  27. <property name="CONSOLE_LOG_PATTERN"
  28. 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}}"/>
  29. <!--1. 输出到控制台-->
  30. <!-- 定义控制台日志输出的appender,class="ch.qos.logback.core.ConsoleAppender"表示使用Logback框架提供的ConsoleAppender类来输出日志到控制台 -->
  31. <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  32. <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
  33. <!-- 定义日志输出级别的过滤器,class="ch.qos.logback.classic.filter.ThresholdFilter"表示使用Logback框架提供的ThresholdFilter类来过滤日志输出,<level>debug</level>表示只输出debug级别及以上的日志 -->
  34. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  35. <level>debug</level>
  36. </filter>
  37. <encoder>
  38. <!-- ${CONSOLE_LOG_PATTERN}表示控制台日志输出格式,UTF-8表示编码格式 -->
  39. <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
  40. <!-- 设置字符集 -->
  41. <charset>UTF-8</charset>
  42. </encoder>
  43. </appender>
  44. <!--2. 输出到文档-->
  45. <!-- 2.1 level为 DEBUG 日志,时间滚动输出 -->
  46. <!-- 定义文件日志输出的appender,class="ch.qos.logback.core.rolling.RollingFileAppender"表示使用Logback框架提供的RollingFileAppender类来输出日志到文件 -->
  47. <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  48. <!-- 正在记录的日志文档的路径及文档名 -->
  49. <file>${logging.path}/web_debug.log</file>
  50. <!--日志文档输出格式-->
  51. <encoder>
  52. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  53. <charset>UTF-8</charset> <!-- 设置字符集 -->
  54. </encoder>
  55. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  56. <!-- 定义日志文件滚动策略的标签,class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"表示使用Logback框架提供的TimeBasedRollingPolicy类来定义日志文件的滚动策略 -->
  57. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  58. <!-- 日志归档 -->
  59. <!-- 定义日志文件名的模式。在这个模式中,${logging.path}表示日志文件的路径,%d{yyyy-MM-dd}表示日期格式,%i表示文件索引 -->
  60. <fileNamePattern>${logging.path}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  61. <!-- 定义日志文件滚动策略的标签,class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"表示使用Logback框架提供的SizeAndTimeBasedFNATP类来定义日志文件的滚动策略,<maxFileSize>100MB</maxFileSize>表示日志文件的最大大小为100MB。这个滚动策略通常用于按照时间和文件大小滚动日志文件,以便更好地管理日志文件的大小和数量 -->
  62. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  63. <maxFileSize>100MB</maxFileSize>
  64. </timeBasedFileNamingAndTriggeringPolicy>
  65. <!--日志文档保留天数-->
  66. <maxHistory>15</maxHistory>
  67. </rollingPolicy>
  68. <!-- 此日志文档只记录debug级别的 -->
  69. <!-- 定义日志输出级别的过滤器。在这个过滤器中,class="ch.qos.logback.classic.filter.LevelFilter"表示使用Logback框架提供的LevelFilter类来过滤日志输出,<level>debug</level>表示只输出debug级别及以上的日志 -->
  70. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  71. <level>debug</level>
  72. <!-- <onMatch>ACCEPT</onMatch>表示如果日志事件与过滤器匹配,则接受该事件,<onMismatch>DENY</onMismatch>表示如果日志事件与过滤器不匹配,则拒绝该事件 -->
  73. <onMatch>ACCEPT</onMatch>
  74. <onMismatch>DENY</onMismatch>
  75. </filter>
  76. </appender>
  77. <!-- 2.2 level为 INFO 日志,时间滚动输出 -->
  78. <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  79. <!-- 正在记录的日志文档的路径及文档名 -->
  80. <file>${logging.path}/web_info.log</file>
  81. <!--日志文档输出格式-->
  82. <encoder>
  83. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  84. <charset>UTF-8</charset>
  85. </encoder>
  86. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  87. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  88. <!-- 天天日志归档路径以及格式 -->
  89. <fileNamePattern>${logging.path}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  90. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  91. <maxFileSize>100MB</maxFileSize>
  92. </timeBasedFileNamingAndTriggeringPolicy>
  93. <!--日志文档保留天数-->
  94. <maxHistory>15</maxHistory>
  95. </rollingPolicy>
  96. <!-- 此日志文档只记录info级别的 -->
  97. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  98. <level>info</level>
  99. <onMatch>ACCEPT</onMatch>
  100. <onMismatch>DENY</onMismatch>
  101. </filter>
  102. </appender>
  103. <!-- 2.3 level为 WARN 日志,时间滚动输出 -->
  104. <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  105. <!-- 正在记录的日志文档的路径及文档名 -->
  106. <file>${logging.path}/web_warn.log</file>
  107. <!--日志文档输出格式-->
  108. <encoder>
  109. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  110. <charset>UTF-8</charset> <!-- 此处设置字符集 -->
  111. </encoder>
  112. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  113. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  114. <fileNamePattern>${logging.path}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  115. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  116. <maxFileSize>100MB</maxFileSize>
  117. </timeBasedFileNamingAndTriggeringPolicy>
  118. <!--日志文档保留天数-->
  119. <maxHistory>15</maxHistory>
  120. </rollingPolicy>
  121. <!-- 此日志文档只记录warn级别的 -->
  122. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  123. <level>warn</level>
  124. <onMatch>ACCEPT</onMatch>
  125. <onMismatch>DENY</onMismatch>
  126. </filter>
  127. </appender>
  128. <!-- 2.4 level为 ERROR 日志,时间滚动输出 -->
  129. <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  130. <!-- 正在记录的日志文档的路径及文档名 -->
  131. <file>${logging.path}/web_error.log</file>
  132. <!--日志文档输出格式-->
  133. <encoder>
  134. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  135. <charset>UTF-8</charset> <!-- 此处设置字符集 -->
  136. </encoder>
  137. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  138. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  139. <fileNamePattern>${logging.path}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  140. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  141. <maxFileSize>100MB</maxFileSize>
  142. </timeBasedFileNamingAndTriggeringPolicy>
  143. <!--日志文档保留天数-->
  144. <maxHistory>15</maxHistory>
  145. </rollingPolicy>
  146. <!-- 此日志文档只记录ERROR级别的 -->
  147. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  148. <level>ERROR</level>
  149. <onMatch>ACCEPT</onMatch>
  150. <onMismatch>DENY</onMismatch>
  151. </filter>
  152. </appender>
  153. <!-- 4.1 开发环境:打印控制台-->
  154. <!-- 用于在Spring Boot应用程序中配置日志记录的标签。在这个标签中,name="dev"表示这个配置文件只在dev环境中生效,<logger name="com.myClass.controller" level="debug"/>表示为com.myClass.controller(根据业务修改)这个包下的类配置日志输出级别为debug -->
  155. <springProfile name="dev">
  156. <logger name="com.myClass.controller" level="debug"/>
  157. </springProfile>
  158. <!-- 用于配置日志输出的标签。在这个标签中,level="info"表示日志输出级别为info,<appender-ref ref="CONSOLE"/>、<appender-ref ref="DEBUG_FILE"/>、<appender-ref ref="INFO_FILE"/>、<appender-ref ref="WARN_FILE"/>、<appender-ref ref="ERROR_FILE"/>表示将日志输出到不同的appender中,分别为控制台、debug文件、info文件、warn文件和error文件 -->
  159. <root level="info">
  160. <appender-ref ref="CONSOLE"/>
  161. <appender-ref ref="DEBUG_FILE"/>
  162. <appender-ref ref="INFO_FILE"/>
  163. <appender-ref ref="WARN_FILE"/>
  164. <appender-ref ref="ERROR_FILE"/>
  165. </root>
  166. </configuration>
标签: logback spring xml

本文转载自: https://blog.csdn.net/weixin_64719032/article/details/138603388
版权归原作者 六便士林 所有, 如有侵权,请联系我们删除。

“logback-spring.xml 的配置”的评论:

还没有评论