一、日誌級別是什麼
日誌級別是指記錄日誌信息的重要程度,用於限制輸出日誌的詳細程度。不同的日誌級別會對應不同的日誌輸出,具體有DEBUG、INFO、WARN、ERROR、FATAL五種級別。DEBUG最低,FATAL最高。默認情況下,SpringBoot日誌級別是INFO。
二、SpringBoot中常用的日誌框架
SpringBoot中提供了默認的Logback框架進行日誌記錄,但也支持其他的日誌框架,如Log4j2、Java Logging。
三、SpringBoot日誌配置文件
在SpringBoot中,日誌的配置文件為「application.properties」、「application.yml」兩種,它們都位於”classpath:”路徑下。這些文件描述了日誌記錄器的行為和可選的輸出格式。在”application.properties”或”application. yml”文件中配置日誌級別很容易。例如:
logging.level.root=INFO
logging.level.org.springframework.web=DEBUG
logging.level.com.example=TRACE
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
四、配置日誌級別
1. 配置全局日誌級別
我們可以使用「logging.level.root」配置全局日誌級別,例如,我們將日誌級別配置為DEBUG:
logging.level.root=DEBUG
2. 配置指定類的日誌級別
我們也可以單獨配置某個類的日誌級別,例如,我們將”org.springframework.web”的日誌級別配置為DEBUG:
logging.level.org.springframework.web=DEBUG
3. 日誌級別的優先順序
如果多個配置指定了相同的日誌級別,那麼它們的優先順序是”root”最低,”application”包中的次之,”thirdparty”最高。
logging.level.root=DEBUG
logging.level.org.springframework.web=DEBUG
logging.level.com.example=TRACE
五、配置輸出格式
除了日誌級別的配置,我們還可以指定日誌輸出的格式。SpringBoot在”application.properties”或”application.yml” 中設置「logging.pattern.console」來配置格式。例如,我們將日誌輸出格式配置為「%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} – %msg%n」:
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
六、使用@Loggable註解
在SpringBoot中,使用@Loggable註解可以簡單地在類或方法上應用AOP日誌攔截器。例如,我們可以引入「org.springframework.boot:spring-boot-starter-aop」依賴,然後在類或方法上添加@Loggable註解。
import org.springframework.stereotype.Component;
import com.github.f4b6a3.ulid.Ulid;
import lombok.extern.slf4j.Slf4j;
@Component
@Slf4j(topic = "example")
public class MyClass {
@Loggable
public void myMethod(String arg1, int arg2) {
...
}
}
七、小結
SpringBoot中提供了三種設置日誌級別的方式:全局、指定類和優先順序。此外,我們還可以指定日誌輸出的格式並使用@Loggable註解實現AOP日誌攔截。不同的日誌級別和輸出格式可以讓我們更好地了解應用程序的運行情況,從而快速進行調試、排查問題。
原創文章,作者:NGZIV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/334041.html