Spring Boot 日志

  • 日志

    Spring Boot使用Apache Commons日志记录所有内部日志记录。Spring Boot的默认配置为使用Java Util LoggingLog4j2Logback提供了支持。使用这些,我们可以配置控制台日志以及文件日志。如果您使用的是Spring Boot Starters,则Logback将为日志记录提供良好的支持。此外,Logback还提供了对Common LoggingUtil LoggingLog4JSLF4J的良好支持。
  • 日志格式

    默认的Spring Boot Log格式显示在下面的屏幕快照中。
    spring boot log
    这为您提供以下信息-
    • 日期和时间,使该日志的日期和时间
    • 日志级别显示INFO,ERROR或WARN
    • 进程ID
    • -是分隔符
    • 线程名称括在方括号[]中
    • 显示源类名称的记录器名称
    • 日志消息
  • 控制台日志输出

    默认日志消息将打印到控制台窗口。默认情况下,“INFO”,“ERROR”和“WARN”日志消息将打印在日志文件中。如果必须启用DEBUG级别日志,请使用以下所示的命令在启动应用程序时添加DEBUG标志-
    
    java –jar demo.jar --debug
    
    您还可以将调试模式添加到application.properties文件,如下所示:
    
    debug = true
    
  • 文件日志输出

    默认情况下,所有日志将打印在控制台窗口上,而不是文件中。如果要将日志打印到文件中,则需要在application.properties文件中设置属性logging.filelogging.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文件应放在classpath下。您可以使用下面给出的代码在Logback.xml文件中配置ROOT级别日志-Logback支持基于XML的配置以处理Spring Boot Log配置。日志记录配置详细信息在logback.xml文件中配置。logback.xml文件应放在classpath下。您可以使用下面给出的代码在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文件的代码如下。您必须将其放置在classpath中。
    
    <?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.sss'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.sss'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.jc2182.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);
       }
    }       
    
    您在控制台窗口中看到的输出如下所示-
    spring boot log
    您在日志文件中可以看到的输出如下所示:
    spring boot log