spring-boot 日志配置的几种方式

在 Spring Boot 应用程序中,日志配置可以通过多种方式进行,包括使用 logback.xmllogback-spring.xml 配置文件,或者在 application.ymlapplication.properties 文件中进行配置。

logback.xml

logback.xml 是 Logback 的标准配置文件。如果您将此文件放在类路径的根目录下(通常放在src/main/resources目录下),Logback 会自动加载它。这个文件用于定义日志的滚动策略、日志格式、日志级别等。

xml 复制代码
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
    <logger name="org.springframework.web" level="DEBUG" />
    <logger name="com.example" level="DEBUG" />
</configuration>

logback-spring.xml

logback-spring.xml 是 Spring Boot 为 Logback 提供的一个特殊配置文件。与 logback.xml 相比,它允许您使用 Spring Boot 的 profiles 特性来定义不同环境下的日志配置。此外,它还支持 Spring Boot 的扩展,例如使用 <springProperty> 标签来注入 Spring 管理的属性。

xml 复制代码
<configuration>
    <springProperty scope="context" name="appName" source="spring.application.name" defaultValue="MyApp"/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} - ${appName} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
    <logger name="org.springframework.web" level="DEBUG" />
    <logger name="com.example" level="DEBUG" />
</configuration>

application.yml或 application.properties

application.ymlapplication.properties 文件中,您可以进行基本的日志配置,如设置日志级别和日志文件名。但是,这些文件不支持 Logback 的全部配置选项。

yaml 复制代码
logging:
  level:
    root: INFO
    org.springframework.web: DEBUG
    com.example: DEBUG
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
  file:
    name: application.log

以下是对每个配置项的解释:

  • logging.level: 这个属性用于指定不同包或类的日志级别。
    • root: 这是根日志级别,设置为 INFO 意味着所有未特别指定的包或类都将使用 INFO 级别。INFO 级别会记录应用的重要信息,但不会记录过多的细节。
    • org.springframework.web: 这个配置指定了 Spring Web 相关类的日志级别为 DEBUG。这意味着来自 org.springframework.web 包的所有日志消息(包括 DEBUG 级别)都将被记录。这对于调试 web 应用程序非常有用。
    • com.example: 这个配置指定了 com.example 包(以及所有子包)的日志级别为 DEBUG。如果您正在开发一个以 com.example 为根包名的应用程序,这将帮助您记录更多的调试信息。
  • pattern.console: 控制台日志的输出格式。这里配置的是简单的日期和时间戳加上消息内容。
  • file.name: 指定日志文件的名字,这将导致日志被写入到名为 application.log 的文件中。

总结

  • logback.xml 是 Logback 的标准配置文件,适用于所有基于 Logback 的应用程序。
  • logback-spring.xml 是 Spring Boot 推荐的 Logback 配置文件,它提供了与 Spring 集成的额外功能,如 profiles 和 Spring 属性注入。
  • application.ymlapplication.properties 文件提供了基本的日志配置,但功能有限。
  • 在 Spring Boot 应用程序中,如果同时存在 logback.xmllogback-spring.xml,则 logback-spring.xml 会被优先考虑。如果需要更复杂的日志配置,通常推荐使用 logback-spring.xml
相关推荐
2401_873479403 小时前
运营活动被薅羊毛怎么防?用IP查询+设备指纹联动封堵漏洞
java·网络·tcp/ip·github
ShiJiuD6668889993 小时前
大事件板块一
java
摇滚侠3 小时前
@Autowired 和 @Resource 的区别
java·开发语言
SeaTunnel4 小时前
(八)收官篇 | 数据平台最后一公里:数据集成开发设计与上线治理实战
java·大数据·开发语言·白鲸开源
Ting-yu4 小时前
SpringCloud快速入门(7)---- 数据隔离
spring boot·spring·spring cloud
吴声子夜歌5 小时前
Java——线程的基本协作机制
java·线程协作
谙弆悕博士5 小时前
【附C++源码】从零开始实现 2048 游戏
java·c++·游戏·源码·项目实战·2048
独自归家的兔6 小时前
OCPP 1.6 协议详解:GetLocalListVersion 获取本地列表版本指令
java·后端·物联网·spring·ocpp1.6
Apache RocketMQ7 小时前
RocketMQ源码解析——秒级定时消息介绍
java·云原生·消息队列·rocketmq·java-rocketmq
xiaoming00187 小时前
JAVA项目打包部署运维全流程(多服务、批量)
java·linux·运维