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
相关推荐
不愿是过客24 分钟前
java实战干货——长方法深递归
java
小北方城市网1 小时前
Redis 分布式锁高可用实现:从原理到生产级落地
java·前端·javascript·spring boot·redis·分布式·wpf
六义义2 小时前
java基础十二
java·数据结构·算法
毕设源码-钟学长3 小时前
【开题答辩全过程】以 基于SpringBoot的智能书城推荐系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
笨手笨脚の3 小时前
深入理解 Java 虚拟机-03 垃圾收集
java·jvm·垃圾回收·标记清除·标记复制·标记整理
莫问前路漫漫3 小时前
WinMerge v2.16.41 中文绿色版深度解析:文件对比与合并的全能工具
java·开发语言·python·jdk·ai编程
雨中飘荡的记忆4 小时前
Spring AI Gateway:从入门到实战,打造智能AI服务网关
人工智能·spring·gateway
九皇叔叔4 小时前
【03】SpringBoot3 MybatisPlus BaseMapper 源码分析
java·开发语言·mybatis·mybatis plus
挖矿大亨4 小时前
c++中的函数模版
java·c++·算法
a程序小傲4 小时前
得物Java面试被问:RocketMQ的消息轨迹追踪实现
java·linux·spring·面试·职场和发展·rocketmq·java-rocketmq