Logback是Java中性能最优的日志框架之一,原生支持SLF4J,需引入依赖、配置logback.xml/logback-spring.xml,并通过LoggerFactory获取Logger记录日志;Spring Boot支持profile条件化配置。

Logback 是 Java 中最常用、性能最好的日志框架之一,作为 Log4j 的继任者,它原生支持 SLF4J 接口,配置灵活、扩展性强。使用 Logback 的核心是引入依赖、配置文件(logback.xml 或 logback-spring.xml),再通过 SLF4J 的 API 获取 Logger 实例写日志。
添加 Logback 依赖
如果你用 Maven 构建项目,只需在 pom.xml 中加入 spring-boot-starter-logging(Spring Boot 项目默认已包含)或直接引入 Logback 经典版:
- Spring Boot 项目:无需额外添加,
spring-boot-starter系列已内置 Logback - 普通 Java 项目:添加
ch.qos.logback:logback-classic和org.slf4j:slf4j-api
编写 logback.xml 配置文件
将 logback.xml 放在 src/main/resources/ 下,可定义日志级别、输出格式、控制台与文件输出等。一个典型配置示例如下:
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<p><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/app.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender></p><p><root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>说明:
– ConsoleAppender 输出到控制台;
– RollingFileAppender 按日期+大小滚动写入文件;
– %d 表示时间,%level 表示日志级别,%logger 是类名,%msg 是日志内容。
在代码中记录日志
使用 SLF4J 的 LoggerFactory 获取 Logger,不直接 new Logback 类:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
<p>public class UserService {
private static final Logger log = LoggerFactory.getLogger(UserService.class);</p><p>public void createUser(String name) {
log.info("Creating user: {}", name);
log.debug("Debug info for {}", name); // 只有 debug 级别开启时才输出
log.error("Failed to create user", new RuntimeException("Duplicate name"));
}
}关键点:
– 使用 {} 占位符 + 参数方式,比字符串拼接更高效(避免无意义的 toString() 调用);
– 异常对象应作为最后一个参数传入,Logback 会自动打印堆栈;
– 生产环境建议关闭 DEBUG 日志,避免性能损耗和日志爆炸。
Spring Boot 中的增强用法
Spring Boot 支持 logback-spring.xml,可启用 Spring Profile 条件化配置:
<springProfile name="dev">
<root level="DEBUG">
<appender-ref ref="CONSOLE"/>
</root>
</springProfile>
<springProfile name="prod">
<root level="WARN">
<appender-ref ref="FILE"/>
</root>
</springProfile>这样开发时看到详细日志,上线后只保留警告及以上,并自动归档到文件。

















