什么是 Logback?
Logback 是由 SLF4J 作者开发的高性能日志框架,广泛用于 Java 应用中。它支持灵活的日志级别控制,包括 TRACE、DEBUG、INFO、WARN、ERROR 等。
通过 logback.xml 配置日志级别
最常见的方法是在 src/main/resources/logback.xml 中定义根日志级别或特定包/类的日志级别:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 设置根日志级别为 INFO -->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<!-- 为特定包设置 DEBUG 级别 -->
<logger name="com.example.service" level="DEBUG" />
</configuration>
运行时动态调整日志级别(无需重启)
在生产环境中,可通过 JMX 或编程方式动态修改日志级别。例如使用代码:
import ch.qos.logback.classic.Logger;
import org.slf4j.LoggerFactory;
Logger logger = (Logger) LoggerFactory.getLogger("com.example.service");
logger.setLevel(ch.qos.logback.classic.Level.DEBUG);
也可通过 Spring Boot Actuator 的 /loggers 端点实现(需启用)。
日志级别说明
- TRACE:最详细的日志,通常仅用于调试。
- DEBUG:开发阶段常用,记录程序运行细节。
- INFO:常规运行信息,如启动完成、服务状态等。
- WARN:潜在问题,但不影响系统运行。
- ERROR:错误事件,可能导致功能异常。