日志级别:

    • trace 跟踪级别
    • debug 调试级别
    • info 信息级别
    • warn 警告级别
    • error 异常级别

    image.png

    classpath:logback.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
    3. <!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
    4. <!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
    5. <!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
    6. <configuration scan="true" scanPeriod="10 seconds">
    7. <contextName>logback</contextName>
    8. <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
    9. <property name="log.path" value="./logs"/>
    10. <!--输出到控制台-->
    11. <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    12. <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
    13. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    14. <level>info</level>
    15. </filter>
    16. <encoder>
    17. <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ==> [%thread] ==> %-5level %logger{50} - %msg%n</Pattern>
    18. <!-- 设置字符集 -->
    19. <charset>UTF-8</charset>
    20. </encoder>
    21. </appender>
    22. <!--输出到文件-->
    23. <!-- 时间滚动输出 level为 DEBUG 日志 -->
    24. <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    25. <!-- 正在记录的日志文件的路径及文件名 -->
    26. <file>${log.path}/log_debug.log</file>
    27. <!--日志文件输出格式-->
    28. <encoder>
    29. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    30. <charset>UTF-8</charset> <!-- 设置字符集 -->
    31. </encoder>
    32. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
    33. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    34. <!-- 日志归档 -->
    35. <fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
    36. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    37. <maxFileSize>100MB</maxFileSize>
    38. </timeBasedFileNamingAndTriggeringPolicy>
    39. <!--日志文件保留天数-->
    40. <maxHistory>15</maxHistory>
    41. </rollingPolicy>
    42. <!-- 此日志文件只记录debug级别的 -->
    43. <filter class="ch.qos.logback.classic.filter.LevelFilter">
    44. <level>debug</level>
    45. <onMatch>ACCEPT</onMatch>
    46. <onMismatch>DENY</onMismatch>
    47. </filter>
    48. </appender>
    49. <!-- 时间滚动输出 level为 INFO 日志 -->
    50. <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    51. <!-- 正在记录的日志文件的路径及文件名 -->
    52. <file>${log.path}/log_info.log</file>
    53. <!--日志文件输出格式-->
    54. <encoder>
    55. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    56. <charset>UTF-8</charset>
    57. </encoder>
    58. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
    59. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    60. <!-- 每天日志归档路径以及格式 -->
    61. <fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
    62. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    63. <maxFileSize>100MB</maxFileSize>
    64. </timeBasedFileNamingAndTriggeringPolicy>
    65. <!--日志文件保留天数-->
    66. <maxHistory>15</maxHistory>
    67. </rollingPolicy>
    68. <!-- 此日志文件只记录info级别的 -->
    69. <filter class="ch.qos.logback.classic.filter.LevelFilter">
    70. <level>info</level>
    71. <onMatch>ACCEPT</onMatch>
    72. <onMismatch>DENY</onMismatch>
    73. </filter>
    74. </appender>
    75. <!-- 时间滚动输出 level为 WARN 日志 -->
    76. <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    77. <!-- 正在记录的日志文件的路径及文件名 -->
    78. <file>${log.path}/log_warn.log</file>
    79. <!--日志文件输出格式-->
    80. <encoder>
    81. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    82. <charset>UTF-8</charset> <!-- 此处设置字符集 -->
    83. </encoder>
    84. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
    85. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    86. <fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
    87. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    88. <maxFileSize>100MB</maxFileSize>
    89. </timeBasedFileNamingAndTriggeringPolicy>
    90. <!--日志文件保留天数-->
    91. <maxHistory>15</maxHistory>
    92. </rollingPolicy>
    93. <!-- 此日志文件只记录warn级别的 -->
    94. <filter class="ch.qos.logback.classic.filter.LevelFilter">
    95. <level>warn</level>
    96. <onMatch>ACCEPT</onMatch>
    97. <onMismatch>DENY</onMismatch>
    98. </filter>
    99. </appender>
    100. <!-- 时间滚动输出 level为 ERROR 日志 -->
    101. <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    102. <!-- 正在记录的日志文件的路径及文件名 -->
    103. <file>${log.path}/log_error.log</file>
    104. <!--日志文件输出格式-->
    105. <encoder>
    106. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    107. <charset>UTF-8</charset> <!-- 此处设置字符集 -->
    108. </encoder>
    109. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
    110. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    111. <fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
    112. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    113. <maxFileSize>100MB</maxFileSize>
    114. </timeBasedFileNamingAndTriggeringPolicy>
    115. <!--日志文件保留天数-->
    116. <maxHistory>15</maxHistory>
    117. </rollingPolicy>
    118. <!-- 此日志文件只记录ERROR级别的 -->
    119. <filter class="ch.qos.logback.classic.filter.LevelFilter">
    120. <level>ERROR</level>
    121. <onMatch>ACCEPT</onMatch>
    122. <onMismatch>DENY</onMismatch>
    123. </filter>
    124. </appender>
    125. <root level="info">
    126. <appender-ref ref="CONSOLE"/>
    127. <appender-ref ref="DEBUG_FILE"/>
    128. <appender-ref ref="INFO_FILE"/>
    129. <appender-ref ref="WARN_FILE"/>
    130. <appender-ref ref="ERROR_FILE"/>
    131. </root>
    132. <!--生产环境:输出到文件-->
    133. <springProfile name="prod">
    134. <root level="info">
    135. <appender-ref ref="CONSOLE" />
    136. <appender-ref ref="DEBUG_FILE" />
    137. <appender-ref ref="INFO_FILE" />
    138. <appender-ref ref="ERROR_FILE" />
    139. <appender-ref ref="WARN_FILE" />
    140. </root>
    141. </springProfile>
    142. </configuration>

    依赖坐标

    1. <dependency>
    2. <groupId>org.slf4j</groupId>
    3. <artifactId>slf4j-api</artifactId>
    4. </dependency>
    5. <dependency>
    6. <groupId>ch.qos.logback</groupId>
    7. <artifactId>logback-classic</artifactId>
    8. </dependency>