在 spring boot 中配置日志,最直接的方式是在 src/main/resources 目录下创建 application.yml 或 application.properties 文件,通过设置 logging.level 和 logging.file.name 等属性来调整日志级别和输出位置。spring boot 默认使用 logback 作为日志实现,因此也可以直接提供 logback-spring.xml 配置文件以实现更精细的控制,例如自定义日志格式、按天滚动归档或过滤特定包的日志。

如何通过配置文件调整日志级别与输出目标
通过修改 application.yml 中的 logging.level 可以控制不同包或类的日志输出级别,而 logging.file.name 则指定日志写入的文件路径。这种方式无需重启应用即可生效(若配合 Actuator),且适合大多数常规场景。

logging:
level:
root: INFO
com.example.demo: DEBUG
org.springframework.web: WARN
file:
name: logs/application.log
path: ./logs
上述配置将根日志级别设为 INFO,com.example.demo 包下的日志降为 DEBUG 以便调试,同时 Spring Web 相关日志仅输出 WARN 及以上级别。日志文件将写入当前目录下的 logs 文件夹,文件名默认为 application.log。若未指定 file.name 而只指定 path,Spring Boot 会生成带时间戳的日志文件。
立即学习“Java免费学习笔记(深入)”;
你是 TypeScript 项目架构专家,专注于脚手架搭建生产就绪的 Node.js 和前端应用。生成包含现代工具链(pnpm、Vite、Next.js)、类型
如何使用 logback-spring.xml 实现高级日志策略
当需要更复杂的日志管理,如按日期滚动、保留天数、分离错误日志到单独文件时,应使用 logback-spring.xml。该文件需放在 classpath 根目录下,Spring Boot 会自动识别并优先于默认配置加载。

<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="FILE"/>
</root>
</configuration>
此配置定义了一个 RollingFileAppender,日志按天滚动,保留最近 30 天的日志文件。日志格式包含时间、线程名、级别、类名和消息。根日志级别设为 INFO,所有日志均输出到 app.log 及其滚动文件中。若需区分 ERROR 日志,可添加另一个 Appender 并绑定到 level="ERROR" 的 logger。
当日志级别设置为 TRACE 时,哪些信息会被额外记录
将某个包的日志级别设为 TRACE 后,框架会输出比 DEBUG 更详细的信息,包括方法入口、参数值、内部状态变化及第三方库的详细调用链。例如,在 com.example.demo 下启用 TRACE,会记录每个 Bean 的初始化过程、SQL 语句的参数绑定细节以及 HTTP 请求的完整头信息。

















