【spring boot logback】日志logback格式解析

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 在 Spring Boot 中,Logback 是默认的日志框架,它支持灵活的日志格式配置。通过配置 logback.xml 文件,可以定义日志的输出格式、日志级别、日志文件路径等。

一、Logback 日志格式解析

Logback 的格式化输出通过 PatternLayout 实现,通常在 logback.xml 文件中配置。其常用的日志格式由 %符号 开头,后面跟随格式化参数。

🧩 常见的 Logback 格式符

格式符 说明 示例
%d{yyyy-MM-dd HH:mm:ss} 输出日志的时间戳,支持自定义格式 2025-07-19 10:30:00
%level 输出日志级别,如 INFO, DEBUG, ERROR INFO
%logger 输出日志记录器的名称,通常是类名 com.example.demo.MyClass
%thread 输出日志的线程名称 main
%msg 输出日志消息 This is a log message.
%M 输出方法名 methodName
%line 输出日志的行号 42
%n 输出换行符(通常是 \n) \n
%exception 输出异常堆栈跟踪 java.lang.NullPointerException
📜 二、Logback 配置文件(logback.xml)示例

Logback 配置通常放在项目的 src/main/resources 文件夹下,命名为 logback.xml。以下是一个基础的配置示例:











%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n




logs/application.log


%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n



php
746 Bytes
© 菜鸟-创作你的创作
📌 解析:

:设置根日志级别为 INFO,表示 INFO 及更高级别的日志(如 WARN, ERROR)会被输出。

:将日志输出到控制台。

:将日志输出到文件。

:定义日志输出格式:
%d{yyyy-MM-dd HH:mm:ss}:时间戳,格式为 yyyy-MM-dd HH:mm:ss。
%thread:线程名。
%-5level:日志级别,宽度为5。
%logger{36}:记录器名(通常是类名),限制长度为36字符。
%msg:日志消息。
%n:换行符。
🧳 三、常见配置项解释

  1. 日志输出级别

TRACE:最低的日志级别,记录非常详细的信息,用于追踪程序执行过程。
DEBUG:开发环境下调试使用,记录调试信息。
INFO:常规日志,记录应用程序的运行状态,适用于正常运行时的日志。
WARN:警告信息,记录可能会导致错误的潜在问题。
ERROR:错误日志,记录程序出现问题时的信息。

  1. 输出到控制台与文件

ConsoleAppender:输出日志到控制台,适用于开发环境。
FileAppender:输出日志到文件,适用于生产环境。



%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n


logs/application.log

%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n


php
436 Bytes
© 菜鸟-创作你的创作

  1. 日志文件分割(RollingFileAppender)

当日志文件过大时,可以使用 RollingFileAppender 来控制日志文件的大小和切割,定期生成新日志文件。


logs/application.log

logs/application.%i.log
1
10


10MB


%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n


php
632 Bytes
© 菜鸟-创作你的创作

  1. 日志异步输出(AsyncAppender)

如果日志输出较为频繁,可以使用 AsyncAppender 进行异步输出,减少对应用性能的影响。




php
111 Bytes
© 菜鸟-创作你的创作
💡 四、Spring Boot 集成 Logback

在 Spring Boot 项目中,Logback 的配置文件通常是 logback-spring.xml 或 logback.xml,位于 src/main/resources 目录下。如果你想在 Spring Boot 中使用自定义 Logback 配置,可以按如下方式:

logback-spring.xml 示例


<!-- 日志输出到控制台 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>
<!-- 日志输出到文件 -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${LOGS}/spring-boot.log</file>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>
<!-- 根日志级别为 INFO -->
<root level="INFO">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
</root>


php
745 Bytes
© 菜鸟-创作你的创作
需要注意的是,logback-spring.xml 文件允许在 Spring Boot 配置文件中读取 ${LOGS} 等变量,以便在不同环境下动态控制日志路径。
📜 五、更多 Logback 配置技巧

日志条件输出(Marker)通过 Marker 可以为日志添加标签,例如:@Loggable 或 @Debuggable。
日志文件切割(Log Rotation)设置最大日志文件大小和备份文件数量,避免单个日志文件过大。 logs/myapp.%d{yyyy-MM-dd}.log 10MB
🔚 总结

Logback 的配置通过 XML 文件进行管理,使用 % 格式符进行日志格式化配置。你可以根据项目需求设置不同的输出方式(控制台、文件、异步等),并且支持多种配置如日志文件切割、日志级别控制等。Spring Boot 集成 Logback 后,配置文件位于 src/main/resources,并且可以灵活自定义。

如果有任何具体问题,如如何配置日志文件大小或根据日志级别调整输出,可以进一步提供帮助!
https://www.52runoob.com/archives/4096

目录
相关文章
|
2月前
|
负载均衡 监控 Java
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
本文详细介绍了 Spring Cloud Gateway 的核心功能与实践配置。首先讲解了网关模块的创建流程,包括依赖引入(gateway、nacos 服务发现、负载均衡)、端口与服务发现配置,以及路由规则的设置(需注意路径前缀重复与优先级 order)。接着深入解析路由断言,涵盖 After、Before、Path 等 12 种内置断言的参数、作用及配置示例,并说明了自定义断言的实现方法。随后重点阐述过滤器机制,区分路由过滤器(如 AddRequestHeader、RewritePath、RequestRateLimiter 等)与全局过滤器的作用范围与配置方式,提
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
|
2月前
|
缓存 安全 Java
Spring Security通用权限管理模型解析
Spring Security作为Spring生态的核心安全框架,结合RBAC与ACL权限模型,基于IoC与AOP构建灵活、可扩展的企业级权限控制体系,涵盖认证、授权流程及数据库设计、性能优化等实现策略。
164 0
|
2月前
|
缓存 安全 Java
Spring Security权限管理解析
Spring Security是Spring生态中的核心安全框架,采用认证与授权分离架构,提供高度可定制的权限管理方案。其基于过滤器链实现认证流程,通过SecurityContextHolder管理用户状态,并结合RBAC模型与动态权限决策,支持细粒度访问控制。通过扩展点如自定义投票器、注解式校验与前端标签,可灵活适配多租户、API网关等复杂场景。结合缓存优化与无状态设计,适用于高并发与前后端分离架构。
165 0
|
2月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
|
2月前
|
SQL Java 数据库连接
Spring Data JPA 技术深度解析与应用指南
本文档全面介绍 Spring Data JPA 的核心概念、技术原理和实际应用。作为 Spring 生态系统中数据访问层的关键组件,Spring Data JPA 极大简化了 Java 持久层开发。本文将深入探讨其架构设计、核心接口、查询派生机制、事务管理以及与 Spring 框架的集成方式,并通过实际示例展示如何高效地使用这一技术。本文档约1500字,适合有一定 Spring 和 JPA 基础的开发者阅读。
226 0
|
16天前
|
XML Java 数据格式
《深入理解Spring》:AOP面向切面编程深度解析
Spring AOP通过代理模式实现面向切面编程,将日志、事务等横切关注点与业务逻辑分离。支持注解、XML和编程式配置,提供五种通知类型及丰富切点表达式,助力构建高内聚、低耦合的可维护系统。
|
16天前
|
前端开发 Java 微服务
《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
|
24天前
|
XML JSON Java
【SpringBoot(三)】从请求到响应再到视图解析与模板引擎,本文带你领悟SpringBoot请求接收全流程!
Springboot专栏第三章,从请求的接收到视图解析,再到thymeleaf模板引擎的使用! 本文带你领悟SpringBoot请求接收到渲染的使用全流程!
119 3
|
2月前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
215 1
日志收集和Spring 微服务监控的最佳实践
下一篇
开通oss服务