SpringBoot日志记录

/ / SpringBoot日志记录

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

日志格式

默认的Spring Boot Log格式显示在下面中。

Spring Boot 日志格式

控制台输出

默认日志消息将打印到控制台窗口。默认情况下," 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

日志级别

Spring Boot支持所有记录器级别,例如" TRACE"," DEBUG"," INFO"," WARN"," ERROR"," FATAL"," OFF"。您可以在application.properties文件中定义Root logger,如下所示-

logging.level.root=WARN

Logback配置

Logback支持基于XML的配置以处理Spring Boot Log配置,日志配置详细信息在 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文件的代码如下。您必须将其放置在类路径中。

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

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

Logger Console Window

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

Log Output

祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)

精选教程推荐

👇 以下精选教程可能对您有帮助,拓展您的技术视野

重学TypeScript -〔周爱民〕

结构思考力 · 透过结构看表达 -〔李忠秋〕

Dubbo源码剖析与实战 -〔何辉〕

React Native 新架构实战课 -〔蒋宏伟〕

图解 Google V8 -〔李兵〕

人人都能学会的编程入门课 -〔胡光〕

全栈工程师修炼指南 -〔熊燚(四火)〕

即时消息技术剖析与实战 -〔袁武林〕

算法面试通关40讲 -〔覃超〕

📝 好记忆不如烂笔头,留下您的学习笔记吧!

暂无学习笔记,成为第一个分享的人吧!

您的笔记将帮助成千上万的学习者