开发手册 欢迎您!
软件开发者资料库

Spring Boot - Logging

Spring Boot Logging - 从简单和简单的步骤学习Spring Boot,从基本到高级概念,包括简介,快速入门,Bootstrapping,Tomcat部署,构建系统,代码结构,Spring Bean和依赖注入,Runners,Application Properties,Logging,构建RESTful Web服务,异常处理,拦截器,Servlet过滤器,Tomcat端口号,Rest模板,文件处理,服务组件,Thymeleaf,使用RESTful Web服务,CORS支持,国际化,调度,启用HTTPS,Eureka服务器,使用Eureka进行服务注册,Zuul代理服务器和路由,Spring云配置服务器,Spring云配置客户端,执行器,管理服务器,管理客户端,启用Swagger2,创建Docker镜像,跟踪微服务日志,Flyway数据库,发送电子邮件,Hystrix,Web套接字,批量服务,Spring for Apache Kafka,Twilio,单元测试用例,静态控制器单元测试,数据库处理,保护Web应用程序ations,OAuth2 with JWT,Google Cloud Platform,Google OAuth2 Sign-In。

Spring Boot使用Apache Commons日志记录进行所有内部日志记录. Spring Boot的默认配置支持使用Java Util Logging,Log4j2和Logback.使用这些,我们可以配置控制台日志记录以及文件日志记录.

如果您使用的是Spring Boot Starters,Logback将为日志记录提供良好的支持.此外,Logback还提供对Common Logging,Util Logging,Log4J和SLF4J的良好支持.

日志格式

默认的Spring Boot日志格式显示在下面给出的屏幕截图中.

Spring Boot Log Format

它为您提供以下信息 :

  • 日期时间给出日志的日期和时间

  • 日志级别显示INFO,ERROR或WARN

  • 流程ID

  • ---这是一个分隔符

  • 主题名称括在方括号内[]

  • 记录器名称,显示源类名称

  • 日志消息

控制台日志输出

默认日志消息将打印到控制台窗口.默认情况下,"INFO","ERROR"和"WARN"日志消息将打印在日志文件中.

如果必须启用调试级别日志,请在启动时添加调试标志您的应用程序使用下面显示的命令 :

 java -jar demo.jar --debug

您还可以将调试模式添加到application.properties文件中,如下所示 :

debug = true

文件日志输出

默认情况下,所有日志都将在控制台窗口中打印,而不是在文件中打印.如果要在文件中打印日志,则需要在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文件中定义Root logger,如下所示 :

logging.level.root = WARN

注意 :  Logback不支持"FATAL"级别日志.它映射到"ERROR"级别日志.

配置Logback

Logback支持基于XML的配置来处理Spring Boot Log配置.日志配置详细信息在 logback.xml 文件中配置. logback.xml文件应放在类路径下.

您可以使用下面给出的代码在


下配置Logback.xml文件中的ROOT级别日志

      

您可以在下面给出的Logback.xml文件中配置控制台appender.

                

您可以使用下面给出的代码在Logback.xml文件中配置文件appender.请注意,您需要在文件appender中指定日志文件路径.

         /var/tmp/mylog.log                  

您可以使用下面给出的代码在 logback.xml 文件中定义日志模式.您还可以使用下面给出的代码和减号来定义控制台或文件日志附加程序中支持的日志模式集;

[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n

完整的logback.xml文件的代码如下所示.你必须把它放在类路径中.

                  [%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n                     /var/tmp/mylog.log               [%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n                               

下面给出的代码显示了如何在Spring Boot主类文件中添加slf4j记录器.

package com.it1352.demo; import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic 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);   }}

您可以在控制台窗口中看到的输出显示在这里 :

记录器控制台窗口

您可以在此处显示日志文件中显示的输出 :

日志输出