一、Logback 日志格式解析
Logback 的格式化输出通过 PatternLayout 实现,通常在 logback.xml 文件中配置。其常用的日志格式由 %符号 开头,后面跟随格式化参数。
🧩 常见的 Logback 格式符
格式符 说明 示例
%d{yyyy-MM-dd HH:mm:ss} 输出日志的时间戳,支持自定义格式 2025-07-19 10:30:00
%level 输出日志级别,如 INFO, DEBUG, ERROR INFO
%logger 输出日志记录器的名称,通常是类名 com.example.demo.MyClass
%thread 输出日志的线程名称 main
%msg 输出日志消息 This is a log message.
%M 输出方法名 methodName
%line 输出日志的行号 42
%n 输出换行符(通常是 \n) \n
%exception 输出异常堆栈跟踪 java.lang.NullPointerException
📜 二、Logback 配置文件(logback.xml)示例
Logback 配置通常放在项目的 src/main/resources 文件夹下,命名为 logback.xml。以下是一个基础的配置示例:
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
logs/application.log
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
php
746 Bytes
© 菜鸟-创作你的创作
📌 解析:
:设置根日志级别为 INFO,表示 INFO 及更高级别的日志(如 WARN, ERROR)会被输出。
:将日志输出到控制台。
:将日志输出到文件。
:定义日志输出格式:
%d{yyyy-MM-dd HH:mm:ss}:时间戳,格式为 yyyy-MM-dd HH:mm:ss。
%thread:线程名。
%-5level:日志级别,宽度为5。
%logger{36}:记录器名(通常是类名),限制长度为36字符。
%msg:日志消息。
%n:换行符。
🧳 三、常见配置项解释
- 日志输出级别
TRACE:最低的日志级别,记录非常详细的信息,用于追踪程序执行过程。
DEBUG:开发环境下调试使用,记录调试信息。
INFO:常规日志,记录应用程序的运行状态,适用于正常运行时的日志。
WARN:警告信息,记录可能会导致错误的潜在问题。
ERROR:错误日志,记录程序出现问题时的信息。
- 输出到控制台与文件
ConsoleAppender:输出日志到控制台,适用于开发环境。
FileAppender:输出日志到文件,适用于生产环境。
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
logs/application.log
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
php
436 Bytes
© 菜鸟-创作你的创作
- 日志文件分割(RollingFileAppender)
当日志文件过大时,可以使用 RollingFileAppender 来控制日志文件的大小和切割,定期生成新日志文件。
logs/application.log
logs/application.%i.log
1
10
10MB
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
php
632 Bytes
© 菜鸟-创作你的创作
- 日志异步输出(AsyncAppender)
如果日志输出较为频繁,可以使用 AsyncAppender 进行异步输出,减少对应用性能的影响。
php
111 Bytes
© 菜鸟-创作你的创作
💡 四、Spring Boot 集成 Logback
在 Spring Boot 项目中,Logback 的配置文件通常是 logback-spring.xml 或 logback.xml,位于 src/main/resources 目录下。如果你想在 Spring Boot 中使用自定义 Logback 配置,可以按如下方式:
logback-spring.xml 示例
<!-- 日志输出到控制台 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 日志输出到文件 -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${LOGS}/spring-boot.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 根日志级别为 INFO -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
php
745 Bytes
© 菜鸟-创作你的创作
需要注意的是,logback-spring.xml 文件允许在 Spring Boot 配置文件中读取 ${LOGS} 等变量,以便在不同环境下动态控制日志路径。
📜 五、更多 Logback 配置技巧
日志条件输出(Marker)通过 Marker 可以为日志添加标签,例如:@Loggable 或 @Debuggable。
日志文件切割(Log Rotation)设置最大日志文件大小和备份文件数量,避免单个日志文件过大。 logs/myapp.%d{yyyy-MM-dd}.log 10MB
🔚 总结
Logback 的配置通过 XML 文件进行管理,使用 % 格式符进行日志格式化配置。你可以根据项目需求设置不同的输出方式(控制台、文件、异步等),并且支持多种配置如日志文件切割、日志级别控制等。Spring Boot 集成 Logback 后,配置文件位于 src/main/resources,并且可以灵活自定义。
如果有任何具体问题,如如何配置日志文件大小或根据日志级别调整输出,可以进一步提供帮助!
https://www.52runoob.com/archives/4096