概述
Logback 是 Java 社区内应用最为广泛的日志框架之一,其作为 Log4j 的替代方案,相较前者不仅拥有更优异的性能表现,还提供了更为多样化的配置选项与更具灵活性的日志归档机制。
本文将对 Logback 的核心架构展开深入解析,助力开发者掌握通过该框架增强应用日志能力的相关技能。
Logback架构
Logback 三大组件:
✅ Logger:日志的上下文,是应用中用于生成日志的入口
✅ Appender:决定日志的最终输出位置(如控制台、文件等)
✅ Layout:定义日志的输出格式
Springboot集成
1. pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

2. logback.xml
在classpath下创建logback.xml文件:
<property name="LOG_DIR" value="D:/test" />
<property name="LOG_FILE" value="LogFile" />
<!-- RollingFileAppender: 具有轮转日志文件的功能 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}/${LOG_FILE}.log</file>
<!-- 基于大小以及时间的轮转策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/log.%d{yyyy-MM-dd}.%i.log </fileNamePattern>
<maxFileSize>1000MB</maxFileSize>
<MaxHistory>60</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 自定义-->
<logger name="com.example.demo" level="debug" />
<root level="info">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
3. 测试代码
package com.example.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Example {
private static final Logger logger = LoggerFactory.getLogger(Example.class);
public static void main(String[] args) {
logger.debug("Example log from {}", Example.class.getSimpleName());
logger.info("Example log from {}", Example.class.getSimpleName());
logger.warn("Example log from {}", Example.class.getSimpleName());
logger.error("Example log from {}", Example.class.getSimpleName());
}
}
4. 控制台查看

小程序推广(拾光待办)
👍

或者扫描二维码:
👍
