📜  Spring Boot-日志记录

📅  最后修改于: 2020-11-11 05:33:24             🧑  作者: Mango


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

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

日志格式

默认的Spring Boot Log格式显示在下面的屏幕快照中。

Spring Boot日志格式

这为您提供以下信息-

  • 日期时间,使该日志的日期和时间

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

  • 进程ID

  • -是分隔符

  • 线程名称括在方括号[]中

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

  • 日志消息

控制台日志输出

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

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

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”级别的日志。它映射到“错误”级别的日志。

配置登录

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

您可以使用下面给出的代码在Logback.xml文件中配置ROOT级别日志-



   
   

您可以在下面给出的Logback.xml文件中配置控制台附加程序。



   
   
       
   

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



   
      /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.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);
   }
}

您在控制台窗口中看到的输出如下所示-

记录器控制台窗口

您在日志文件中可以看到的输出如下所示:

日志输出