Spring Boot教學
Spring Boot是什麼?
Spring Boot簡介
Spring Boot主要目標
Spring Boot快速入門
新項目爲什麼需要Spring Boot?
Spring Boot引導過程
Spring Boot核心和限制
Spring Boot Tomcat部署
Spring Boot優點和缺點
Spring Boot構建系統
Spring Boot入門
Spring Boot代碼結構
Spring Boot安裝
Spring Boot Bean和依賴注入
Spring Boot應用程序開發入門
Spring Boot運行器(Runner)
Spring Boot JSP應用實例
Spring Boot應用程序屬性
Spring Boot將WAR文件部署到Tomcat
Spring Boot日誌
Spring Boot Hello World(Thymeleaf)示例
Spring Boot構建RESTful Web服務
Spring Boot非web應用程序實例
Spring Boot異常處理
Spring Boot @ConfigurationProperties實例
Spring Boot攔截器
Spring Boot SLF4J日誌實例
Spring Boot Servlet過濾器
Spring Boot Ajax實例
Spring Boot Tomcat端口號
Spring Boot文件上傳示例(Ajax和REST)
Spring Boot Rest模板
Spring Boot文件上傳示例
Spring Boot文件處理
Spring Boot服務組件
Spring Boot Thymeleaf示例
Spring Boot使用RESTful Web服務
Spring Boot CORS支持
Spring Boot國際化
Spring Boot調度
Spring Boot啓用HTTPS
Spring Boot Eureka服務器
Spring Boost Eureka服務註冊
Spring Boot Zuul代理服務器和路由
Spring Boot雲配置服務器
Spring Boot雲配置客戶端
Spring Boot Actuator
Spring Boot管理服務器
Spring Boot管理客戶端
Spring Boot啓用Swagger2
Spring Boot創建Docker鏡像
Spring Boot跟蹤微服務日誌
Spring Boot Flyway數據庫
Spring Boot發送電子郵件
Spring Boot Hystrix
Spring Boot Web Socket
Spring Boot批量服務
Spring Boot Apache Kafka
Spring Boot單元測試用例
Spring Boot Rest控制器單元測試
Spring Boot數據庫源(連接數據庫)
Spring Boot保護Web應用程序

Spring Boot日誌

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

它提供以下信息 -

  • 提供日誌日期和時間的日期和時間。
  • 日誌級別顯示有:INFO,ERROR或WARN。
  • 進程ID。
  • ---是一個分隔符。
  • 線程名稱括在方括號[]中。
  • 記錄器名稱,顯示源類名稱。
  • 日誌消息。

控制檯日誌輸出

默認日誌消息將打印到控制檯窗口。 默認情況下,INFOERRORWARN日誌消息將打印在日誌文件中。
如果必須啓用調試級別日誌,請使用以下命令在啓動應用程序時添加調試標誌 -

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

注意 - 文件將在達到10MB後自動旋轉生成。

日誌級別

Spring Boot支持所有記錄器級別,例如:TRACEDEBUGINFOWARNERRORFATALOFF。在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級別日誌 -

<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <root level = "INFO">
   </root>
</configuration>

在下面給出的Logback.xml文件中配置控制檯appender

<?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文件中配置文件appender。 請注意,需要在文件追加器中指定日誌文件路徑。

<?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 logger。

package com.yiibai.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

在此處顯示日誌文件中顯示的輸出 -
Spring