
- Spring Boot 教程
- Spring Boot - 首页
- Spring Boot - 简介
- Spring Boot - 快速入门
- Spring Boot - 引导
- Spring Tool Suite
- Spring Boot - Tomcat 部署
- Spring Boot - 构建系统
- Spring Boot - 代码结构
- Spring Bean & 依赖注入
- Spring Boot - 运行器
- Spring Boot - 启动器
- Spring Boot - 应用程序属性
- Spring Boot - 配置
- Spring Boot - 注解
- Spring Boot - 日志记录
- 构建 RESTful Web 服务
- Spring Boot - 异常处理
- Spring Boot - 拦截器
- Spring Boot - Servlet 过滤器
- Spring Boot - Tomcat 端口号
- Spring Boot - Rest Template
- Spring Boot - 文件处理
- Spring Boot - 服务组件
- Spring Boot - Thymeleaf
- 使用 RESTful Web 服务
- Spring Boot - CORS 支持
- Spring Boot - 国际化
- Spring Boot - 调度
- Spring Boot - 启用 HTTPS
- Spring Boot - Eureka 服务器
- 使用 Eureka 进行服务注册
- 网关代理服务器和路由
- Spring Cloud 配置服务器
- Spring Cloud 配置客户端
- Spring Boot - Actuator
- Spring Boot - Admin 服务器
- Spring Boot - Admin 客户端
- Spring Boot - 启用 Swagger2
- Spring Boot - 使用 SpringDoc OpenAPI
- Spring Boot - 创建 Docker 镜像
- 追踪微服务日志
- Spring Boot - Flyway 数据库
- Spring Boot - 发送邮件
- Spring Boot - Hystrix
- Spring Boot - WebSocket
- Spring Boot - 批处理服务
- Spring Boot - Apache Kafka
- Spring Boot - Twilio
- Spring Boot - 单元测试用例
- Rest Controller 单元测试
- Spring Boot - 数据库处理
- 保护 Web 应用程序
- Spring Boot - 使用 JWT 的 OAuth2
- Spring Boot - Google Cloud Platform
- Spring Boot - Google OAuth2 登录
- Spring Boot 资源
- Spring Boot - 快速指南
- Spring Boot - 有用资源
- Spring Boot - 讨论
Spring Boot - 日志记录
Spring Boot 使用 Apache Commons logging 进行所有内部日志记录。Spring Boot 的默认配置提供对 Java Util Logging、Log4j2 和 Logback 的支持。使用这些,我们可以配置控制台日志记录以及文件日志记录。
如果您使用的是 Spring Boot 启动器,Logback 将提供良好的日志记录支持。此外,Logback 还提供对 Common Logging、Util Logging、Log4J 和 SLF4J 的良好支持。
日志格式
默认的 Spring Boot 日志格式如下所示
[2m2024-09-04T12:08:38.842+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mw.s.c.ServletWebServerApplicationContext[0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 980 ms [2m2024-09-04T12:08:39.185+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat started on port 8080 (http) with context path '/' [2m2024-09-04T12:08:39.192+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mc.tutorialspoint.demo.DemoApplication [0;39m [2m:[0;39m Started DemoApplication in 1.844 seconds (process running for 2.693)
它提供以下信息:
日期和时间,显示日志的日期和时间
日志级别显示 INFO、ERROR 或 WARN
进程 ID
--- 分隔符
线程名称用方括号 [] 括起来
记录器名称显示源类名
日志消息
控制台日志输出
默认的日志消息将打印到控制台窗口。默认情况下,“INFO”、“ERROR”和“WARN”日志消息将打印到日志文件中。
如果您需要启用调试级别日志,请使用以下命令在启动应用程序时添加调试标志:
java –jar demo.jar --debug
您也可以将调试模式添加到您的 application.properties 文件中,如下所示:
debug = true
Learn Spring Boot in-depth with real-world projects through our Spring Boot certification course. Enroll and become a certified expert to boost your career.
文件日志输出
默认情况下,所有日志都将打印到控制台窗口,而不是文件中。如果您想将日志打印到文件中,则需要在 application.properties 文件中设置属性logging.file 或logging.path。
您可以使用以下属性指定日志文件路径。请注意,日志文件名是 spring.log。
logging.path = /var/tmp/
您可以使用以下属性指定您自己的日志文件名:
logging.file = /var/tmp/mylog.log
注意 - 文件将在达到 10 MB 大小时自动轮转。
日志级别
Spring Boot 支持所有日志级别,例如“TRACE”、“DEBUG”、“INFO”、“WARN”、“ERROR”、“FATAL”、“OFF”。您可以在 application.properties 文件中定义根记录器,如下所示:
logging.level.root = WARN
注意 - Logback 不支持“FATAL”级别日志。它被映射到“ERROR”级别日志。
配置 Logback
Logback 支持基于 XML 的配置来处理 Spring Boot 日志配置。日志配置详细信息在logback.xml文件中配置。logback.xml 文件应该放在类路径下。
您可以使用以下代码在 Logback.xml 文件中配置 ROOT 级别日志:
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <root level = "INFO"> </root> </configuration>
您可以使用以下代码在 Logback.xml 文件中配置控制台附加程序。
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"></appender> <root level = "INFO"> <appender-ref ref = "STDOUT"/> </root> </configuration>
您可以使用以下代码在 Logback.xml 文件中配置文件附加程序。请注意,您需要在文件附加程序中指定日志文件路径。
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <appender name = "FILE" class = "ch.qos.logback.core.FileAppender"> <File>/var/tmp/mylog.log</File> </appender> <root level = "INFO"> <appender-ref ref = "FILE"/> </root> </configuration>
您可以使用以下代码在logback.xml文件中定义日志模式。您也可以在控制台或文件日志附加程序中定义一组支持的日志模式:
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
完整的 logback.xml 文件代码如下所示。您必须将其放在类路径中。
logback.xml
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern> </encoder> </appender> <appender name = "FILE" class = "ch.qos.logback.core.FileAppender"> <File>/var/tmp/mylog.log</File> <encoder> <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern> </encoder> </appender> <root level = "INFO"> <appender-ref ref = "FILE"/> <appender-ref ref = "STDOUT"/> </root> </configuration>
以下代码显示如何在 Spring Boot 主类文件中添加 slf4j 记录器。
package com.tutorialspoint.demo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class); public static void main(String[] args) { logger.info("this is a info message"); logger.warn("this is a warn message"); logger.error("this is a error message"); SpringApplication.run(DemoApplication.class, args); } }
您可以在控制台窗口中看到的输出如下所示:
[2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [13] [INFO ] this is a info message [2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [14] [WARN ] this is a warn message [2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [15] [ERROR] this is a error message
您可以在日志文件中看到的输出如下所示:
[2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [13] [INFO ] this is a info message [2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [14] [WARN ] this is a warn message [2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [15] [ERROR] this is a error message