Logback在SpringBoot中的详细配置教程

2025-05-27 02:50

本文主要是介绍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 设置合理。
UbxSZSzbN

到此这篇关于Logback在SpringBoot中的详细配置教程的文章就介绍到这了,更多相关SpringBoot配置Logback内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于Logback在SpringBoot中的详细配置教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1154795

相关文章

qtcreater配置opencv遇到的坑及实践记录

《qtcreater配置opencv遇到的坑及实践记录》我配置opencv不管是按照网上的教程还是deepseek发现都有些问题,下面是我的配置方法以及实践成功的心得,感兴趣的朋友跟随小编一起看看吧... 目录电脑环境下载环境变量配置qmake加入外部库测试配置我配置opencv不管是按照网上的教程还是de

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

使用JavaConfig配置Spring的流程步骤

《使用JavaConfig配置Spring的流程步骤》JavaConfig是Spring框架提供的一种基于Java的配置方式,它通过使用@Configuration注解标记的类来替代传统的XML配置文... 目录一、什么是 JavaConfig?1. 核心注解2. 与 XML 配置的对比二、JavaConf

SpringBoot实现Kafka动态反序列化的完整代码

《SpringBoot实现Kafka动态反序列化的完整代码》在分布式系统中,Kafka作为高吞吐量的消息队列,常常需要处理来自不同主题(Topic)的异构数据,不同的业务场景可能要求对同一消费者组内的... 目录引言一、问题背景1.1 动态反序列化的需求1.2 常见问题二、动态反序列化的核心方案2.1 ht

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总

Java JSQLParser解析SQL的使用指南

《JavaJSQLParser解析SQL的使用指南》JSQLParser是一个Java语言的SQL语句解析工具,可以将SQL语句解析成为Java类的层次结构,还支持改写SQL,下面我们就来看看它的具... 目录一、引言二、jsQLParser常见类2.1 Class Diagram2.2 Statement

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

SpringBoot实现多环境配置文件切换

《SpringBoot实现多环境配置文件切换》这篇文章主要为大家详细介绍了如何使用SpringBoot实现多环境配置文件切换功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 示例代码结构2. pom文件3. application文件4. application-dev文

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re