本篇文章將帶您了解如何在SpringBoot項目中關閉Info級別日誌輸出。
一、為什麼要關閉Info日誌
在開發中,我們經常會使用Log4j、Logback等框架來輸出日誌信息,而默認情況下SpringBoot會輸出一些Info級別的日誌,這些日誌信息通常用於調試,但有時候它們會佔據大量的控制台輸出以及日誌文件,嚴重影響正常的日誌查看。
例如,當我們使用SpringBoot開發Restful API時,請求信息、響應信息等都會被默認輸出到日誌中,伴隨着每個接口請求的輸出,日誌會變得張冠李戴,不利於調試分析。
二、如何設置不輸出Info級別日誌
1、使用properties方式設置
我們可以在項目的 application.properties 文件中設置logging.level.root=ERROR,這意味着SpringBoot將不會輸出Level.INFO的日誌信息。
application.properties 配置示例:
logging.level.root=ERROR
2、使用yml方式設置
同樣的,我們也可以使用yml文件方式設置logging.level.root。
application.yml 配置示例:
logging: level: root: ERROR
3、使用代碼方式設置
除了以上兩種方式之外,我們還可以通過編寫代碼的方式,來設置日誌級別。
代碼示例:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Configuration public class LogConfiguration { private static final Logger logger = LoggerFactory.getLogger(LogConfiguration.class); @PostConstruct public void init() { logger.info("init LogConfiguration"); ch.qos.logback.classic.Logger rootLogger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); rootLogger.setLevel(Level.ERROR); } }
這個例子中,我們通過 LogConfiguration 類實現了一個初始化的方法init(),在這個方法中我們獲得了 ROOT_LOGGER_NAME 的實例並調整了日誌級別到 ERROR。
三、如何判斷是否設置成功
當我們在項目中添加了相應的配置之後,如何判斷是否設置成功呢?
我們可以在控制台中查看運行時的日誌信息,如果控制台上不再輸出頻繁的Info級別日誌信息,那麼就證明我們已經成功關閉了Info級別日誌輸出。
另外,我們還可以在調試日誌的時候,通過打印當前 LoggingSystem 的狀態,來確認我們的日誌配置是否生效。
代碼示例:
@Component public class CheckLoggingLevelCommandLineRunner implements CommandLineRunner { @Autowired private LoggingSystem loggingSystem; @Override public void run(String... args) throws Exception { LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); for (Logger logger : loggerContext.getLoggerList()) { System.out.println("logger.getName(): " + logger.getName() + ", logger.getLevel(): " + logger.getLevel()); } loggingSystem.setLogLevel("root", LogLevel.ERROR); } }
當我們在終端啟動項目並運行上述代碼,如果輸出信息中logger.getLevel()的值為 ERROR,則證明我們的配置已生效。
四、小結
以上就是SpringBoot如何設置不輸出Info級別日誌的全部內容,我們可以通過在 properties、yml 文件中進行配置,或者通過代碼動態設置等多種方式,來實現相應的功能。
原創文章,作者:HHBJT,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/373741.html