一、日誌使用;
1、默認配置
SpringBoot默認幫我們配置好了日誌
//記錄器
Logger logger = LoggerFactory.getLogger(getClass());
@Test
void contextLoads() {
//日誌的級別:
//由低到高 trace<debug<info<warn<error
//我們可以調整輸出的日誌級別:去獲取我們所需要的級別的日誌
logger.trace("這是trace日誌...");
logger.debug("這是debug日誌...");
//SpringBoot 默認給我們的是info級別
//調整在application.properties中添加logging.level.com.example=trace
logger.info("這是info日誌...");
logger.warn("這是warn日誌...");
logger.error("這是error日誌...");
}
我們可以在application.propertis中去設置日誌的輸出方式:
-
Spring Boot默認日誌root等級是info等級;
-
logging.level.packagename=trace[debug、info、warn、error]設置日誌輸出的等級;
-
logging.file.path=絕對路徑、相對路徑:日誌文件指定輸出到文件中;
-
我們也可以規定日誌的格式
%c 輸出日誌信息所屬的類的全名 %d 輸出日誌時間點的日期或時間,默認格式爲ISO8601,也可以在其後指定格式,比如:%d{yyy-MM-dd HH:mm:ss },輸出類似:2002-10-18- 22:10:28 %f 輸出日誌信息所屬的類的類名 %l 輸出日誌事件的發生位置,即輸出日誌信息的語句處於它所在的類的第幾行 %m 輸出代碼中指定的信息,如log(message)中的message %n 輸出一個回車換行符,Windows平臺爲“rn”,Unix平臺爲“n” %p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則爲DEBUG,依此類推 %r 輸出自應用啓動到輸出該日誌信息所耗費的毫秒數 %t 輸出產生該日誌事件的線程名 所以: %5p [%t] (%F:%L) - %m%n 就表示 寬度是5的優先等級 線程名稱 (文件名:行號) - 信息 回車換行
-
application.properties
logging.level.com.example=trace logging.file.path=D:/springboot.log # 設置日誌格式 logging.pattern.console=%d{yyyy-MM-dd}[%thread]%-5level %logger{50} - %msg%n #指定文件中日誌輸出的格式 logging.pattern.file=%d{yyyy-MM-dd} === [%thread] ==== %-5level ==== %logger{50} ==== %msg%n
2、指定配置
給類路徑上放上xx.xml自己的日誌配置,並且設定自己的日誌輸出設置,那麼就不會使用默認的輸出日誌設置了。
logback.xml:直接就被日誌框架識別了;
**logback-spring.xml:**日誌框架不會直接加載日誌的配置項,由Spring boot 進行加載識別,這樣我們可以使用sping boot 的高級配置。對於springboot的識別,我們可以添加springProfile進行配置:
<springProfile name="staging">
可以指定某段配置只在某個環境下生效
</springProfile>
否則會出現框架加載錯誤。
建議:最好是使用logback-spring.xml進行自定義配置,這樣我們可以使用springboot的高級配置。
3、切換日誌框架
-
可以按照slf4j的日誌適配圖,進行相關的切換;去掉某一些的依賴,然後添加上需要的log4j等配置
-
springboot官方支持以下切換框架:
我們可以直接刪除之前的spring-boot-starter-xxx,然後再添加所需要的日誌框架即可。