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
相关推荐
e***956422 分钟前
springboot项目架构
spring boot·后端·架构
q***216029 分钟前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
j***121530 分钟前
Spring Boot与MyBatis
spring boot·后端·mybatis
Boop_wu35 分钟前
[Java EE] 多线程 -- 初阶(5) [线程池和定时器]
java·开发语言
optimistic_chen44 分钟前
【Java EE进阶 --- SpringBoot】Spring事务传播机制
spring boot·后端·spring·java-ee·事务·事务传播机制
雨中飘荡的记忆2 小时前
Java + Groovy计费引擎详解
java·groovy
嘟嘟w2 小时前
JVM(Java 虚拟机):核心原理、内存模型与调优实践
java·开发语言·jvm
合作小小程序员小小店2 小时前
web开发,在线%药店管理%系统,基于Idea,html,css,jQuery,java,ssm,mysql。
java·前端·mysql·jdk·html·intellij-idea
ZHE|张恒2 小时前
设计模式(八)组合模式 — 以树结构统一管理对象层级
java·设计模式·组合模式
TDengine (老段)2 小时前
TDengine 转换函数 CAST 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据