本文主要是介绍Logback在SpringBoot中的详细配置教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《Logback在SpringBoot中的详细配置教程》SpringBoot默认会加载classpath下的logback-spring.xml(推荐)或logback.xml作为Logback的配置...
1. Logback 配置文件
Spring Boot 默认会加载 classpath 下的 logback-spring.XML(推荐)或 logback.xml 作为 Logback 的配置文件。
推荐使用 logback-spring.xml,因为 Spring Boot 提供了扩展支持(例如基于 Profile 的配置)。
配置文件位置
放在 src/main/resources/ 目录下。
2. 基础配置示例
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="30 seconds"> <!-- 定义变量 --> <property name="LOG_PATH" value="./logs" /> <property name="LOG_FILE" value="myapp" /> <!-- 控制台输出 --> <appender name="CONSOLE" 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> <!-- 滚动文件输出 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_PATH}/${LOG_FILE}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/${LOG_FILE}-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxFileSize>50MB</maxFileSize> www.chinasem.cn <maxHistory>30</maxHistory> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 日志级别和输出源配置 --> <root level="INFO"> php<appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> </root> <!-- 指定包或类的日志级别 --> <logger name="com.example.demo" level="DEBUG" /> </configuration>
3. 关键配置项说明
Appender(日志输出器)
ConsoleAppender: 输出日志到控制台。
RollingFileAppender: 输出到文件并支持滚动(按时间、大小分割)。
- SizeAndTimeBasedRollingPolicy: 根据时间和文件大小滚动。
- maxFileSize: 单个文件最大大小。
- maxHistory: 保留的历史日志文件数量。
- totalSizeCap: 日志文件总大小限制。
Encoder(日志格式化)
<pattern> 定义日志格式,常用占位符:
- %d: 日期时间
- %thread: 线程名
- %-5level: 日志级别(左对齐,宽度5)
- %logger{36}: 日志输出者的名称(最长36字符)
- %msg: 日志消息
- %n: 换行符
Logger 和 Root Logger
- <root>: 根日志配置,所有日志默认继承此配置。
- <logger>: 针对特定包或类配置日志级别。
4. Spring Boot 特有功能
通过 application.properties 覆盖配置
在 application.properties UbxSZSzbN中可以覆盖部分日志配置:
# 设置根日志级别 logging.level.root=INFO # 设置特定包日志级别 logging.level.com.example.demo=DEBUG # 日志文件路径 logging.file.path=./logs logging.file.name=./logs/app.log
按 Profile 配置日志
在 logback-spring.xml 中使用 <springProfile> 实现多环境配置:
<springProfile name="dev"> <root level="DEBUG"> <appender-ref ref="CONSOLE" /> </root> </springProfile> <springProfile name="prod"> <root level="INFO"> <appender-ref ref="FILE" /> </root> </springProfile>
5. 高级配置
异步日志
使用 AsyncAppender 提升性能:
<appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="FILE" /> <!-- 队列大小,超出此值会丢弃 TRACE/DEBUG 日志 --> <queueSize>256</queueSize> </appender>
彩色日志输出
在 ConsoleAppender 中启用颜色:
<encoder> <pattern>%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%-5level) %clr(${PID}){magenta} --- [%thread] %clr(%logger{36}){cyan} : %msg%n</pattern>编程; </encoder>
6. 常见问题解决
配置文件未生效
- 确认文件名是 logback-spring.xml 且位于 src/main/resources。
- 检查是否有其他日志框架(如 Log4j2)冲突,排除相关依赖。
日志文件未滚动
- 检查 RollingFileAppender 配置,确保路径和文件名合法。
- 确保 maxHistory 和 totalSizeCap 设置合理。
到此这篇关于Logback在SpringBoot中的详细配置教程的文章就介绍到这了,更多相关SpringBoot配置Logback内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!
这篇关于Logback在SpringBoot中的详细配置教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!