logback-spring.xml日志配置文件详解

曾经终败给现在 2024-03-22 20:27 141阅读 0赞

目录

  • 前言
  • logback-spring.xml 配置

前言

打印日志是一个系统的基本功能,系统出现异常可以通过查找日志弄清楚是什么原因,从而更加快速地定位问题,修复系统。

logback-spring.xml 配置

  1. 文件位置
    在这里插入图片描述
  2. 具体配置

    <?xml version=”1.0” encoding=”UTF-8”?>

    1. <include resource="org/springframework/boot/logging/logback/base.xml"/>
    2. <jmxConfigurator />
    3. <!-- 当前模块名称 -->
    4. <contextName>myAppName</contextName>
    5. <!-- 设置日志文件第一层目录 -->
    6. <property name="LOG_PATH" value="./logs"/>
    7. <!--设置第二层目录-->
    8. <property name="APPDIR" value="airport_admin"/>
    9. <!-- 彩色日志 -->
    10. <!-- 彩色日志依赖的渲染类 -->
    11. <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    12. <conversionRule conversionWord="wex"
    13. converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    14. <conversionRule conversionWord="wEx"
    15. converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
    16. <!-- 彩色日志格式 -->
    17. <property name="CONSOLE_LOG_PATTERN"
    18. 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}}"/>
    19. <!-- 日志记录器,日期滚动记录error日志 -->
    20. <appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
    21. <!-- 正在记录的日志文件的路径及文件名 -->
    22. <file>${LOG_PATH}/${APPDIR}/log_error.log</file>
    23. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
    24. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    25. <!-- 归档的日志文件的路径,例如今天是2023-07-25日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件归档到不同的目录。
    26. 而2023-07-25的日志文件由fileNamePattern指定,%d{yyyyMMdd}-%d{HH:mm:ss}指定日期格式,%i指定索引 -->
    27. <fileNamePattern>${LOG_PATH}/${APPDIR}/error/%d{yyyyMMdd}/${APPDIR}-%d{yyyyMMdd}-%d{HH:mm:ss}.%i.log</fileNamePattern>
    28. <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
    29. 命名日志文件,例如log-error-2023-07-23-10:25:35.0.log -->
    30. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    31. <maxFileSize>2MB</maxFileSize>
    32. </timeBasedFileNamingAndTriggeringPolicy>
    33. <!--日志文件保留天数-->
    34. <maxHistory>30</maxHistory>
    35. <!-- 启动项目后清理历史日志,默认值为 false -->
    36. <cleanHistoryOnStart>true</cleanHistoryOnStart>
    37. </rollingPolicy>
    38. <!-- 追加方式记录日志 -->
    39. <append>true</append>
    40. <!-- 日志文件的格式 -->
    41. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    42. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L [%thread] - %msg%n</pattern>
    43. <charset>utf-8</charset>
    44. </encoder>
    45. <!-- 此日志文件只记录error级别的 -->
    46. <filter class="ch.qos.logback.classic.filter.LevelFilter">
    47. <level>error</level>
    48. <onMatch>ACCEPT</onMatch>
    49. <onMismatch>DENY</onMismatch>
    50. </filter>
    51. </appender>
    52. <!-- 日志记录器,日期滚动记录warn日志 -->
    53. <appender name="FILEWARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
    54. <!-- 正在记录的日志文件的路径及文件名 -->
    55. <file>${LOG_PATH}/${APPDIR}/log_warn.log</file>
    56. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
    57. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    58. <!-- 类似error配置 -->
    59. <fileNamePattern>${LOG_PATH}/${APPDIR}/warn/%d{yyyyMMdd}/${APPDIR}-%d{yyyyMMdd}-%d{HH:mm:ss}.%i.log</fileNamePattern>
    60. <!-- 类似error配置 -->
    61. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    62. <maxFileSize>2MB</maxFileSize>
    63. </timeBasedFileNamingAndTriggeringPolicy>
    64. <!--日志文件保留天数-->
    65. <maxHistory>30</maxHistory>
    66. <cleanHistoryOnStart>true</cleanHistoryOnStart>
    67. </rollingPolicy>
    68. <!-- 追加方式记录日志 -->
    69. <append>true</append>
    70. <!-- 日志文件的格式 -->
    71. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    72. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L [%thread] - %msg%n</pattern>
    73. <charset>utf-8</charset>
    74. </encoder>
    75. <!-- 此日志文件只记录warn级别的 -->
    76. <filter class="ch.qos.logback.classic.filter.LevelFilter">
    77. <level>warn</level>
    78. <onMatch>ACCEPT</onMatch>
    79. <onMismatch>DENY</onMismatch>
    80. </filter>
    81. </appender>
    82. <!-- 日志记录器,日期滚动记录info日志 -->
    83. <appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
    84. <!-- 正在记录的日志文件的路径及文件名 -->
    85. <file>${LOG_PATH}/${APPDIR}/log_info.log</file>
    86. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
    87. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    88. <!-- 类似error配置 -->
    89. <fileNamePattern>${LOG_PATH}/${APPDIR}/info/%d{yyyyMMdd}/${APPDIR}-%d{yyyyMMdd-HH:mm:ss}.%i.log</fileNamePattern>
    90. <!-- 类似error配置 -->
    91. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    92. <maxFileSize>20MB</maxFileSize>
    93. </timeBasedFileNamingAndTriggeringPolicy>
    94. <!--日志文件保留天数-->
    95. <maxHistory>30</maxHistory>
    96. <cleanHistoryOnStart>true</cleanHistoryOnStart>
    97. </rollingPolicy>
    98. <!-- 追加方式记录日志 -->
    99. <append>true</append>
    100. <!-- 日志文件的格式 -->
    101. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    102. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger [%thread] - %msg%n</pattern>
    103. <charset>utf-8</charset>
    104. </encoder>
    105. <!-- 此日志文件只记录info级别的 -->
    106. <filter class="ch.qos.logback.classic.filter.LevelFilter">
    107. <level>info</level>
    108. <onMatch>ACCEPT</onMatch>
    109. <onMismatch>DENY</onMismatch>
    110. </filter>
    111. </appender>
    112. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    113. <!--encoder 默认配置为PatternLayoutEncoder-->
    114. <encoder>
    115. <pattern>${CONSOLE_LOG_PATTERN}</pattern>
    116. <charset>utf-8</charset>
    117. </encoder>
    118. <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
    119. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    120. <level>debug</level>
    121. </filter>
    122. </appender>
    123. <!--myibatis log configure-->
    124. <logger name="com.apache.ibatis" level="TRACE"/>
    125. <logger name="java.sql.Connection" level="DEBUG"/>
    126. <logger name="java.sql.Statement" level="DEBUG"/>
    127. <logger name="java.sql.PreparedStatement" level="DEBUG"/>
  1. <!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
  2. <!--
  3. <springProfile name="dev">
  4. </springProfile>
  5. 可以使用这个标签实现不同环境不同日志级别
  6. <springProfile name="test">
  7. <root level="INFO">
  8. <appender-ref ref="FILE"/>
  9. <appender-ref ref="STDOUT"/>
  10. </root>
  11. </springProfile>
  12. -->
  13. <!-- 异步输出 -->
  14. <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
  15. <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
  16. <discardingThreshold>0</discardingThreshold>
  17. <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
  18. <queueSize>256</queueSize>
  19. <!-- 添加附加的appender,最多只能添加一个 -->
  20. <appender-ref ref="FILEINFO"/>
  21. </appender>
  22. <!--
  23. springProperty 可以读取配置文件中的属性 <file>logs/${logName}.log</file> 使用方法
  24. <springProperty scope="context" name="logName"
  25. source="spring.application.name" defaultValue="localhost"/>
  26. -->
  27. <springProfile name="dev">
  28. <root level="INFO">
  29. <appender-ref ref="FILEERROR" />
  30. <appender-ref ref="FILEWARN" />
  31. <appender-ref ref="ASYNC" />
  32. <!-- 生产环境将请stdout,testfile去掉 -->
  33. <!-- <appender-ref ref="STDOUT"/>-->
  34. </root>
  35. </springProfile>
  36. <springProfile name="pro">
  37. <root level="INFO">
  38. <appender-ref ref="FILEERROR" />
  39. <appender-ref ref="FILEWARN" />
  40. <appender-ref ref="ASYNC" />
  41. <!-- 生产环境将请stdout,testfile去掉 -->
  42. <!-- <appender-ref ref="STDOUT"/>-->
  43. </root>
  44. </springProfile>
  45. </configuration>

发表评论

表情:
评论列表 (有 0 条评论,141人围观)

还没有评论,来说两句吧...

相关阅读