天天看點

springboot學習筆記(3)

@Conditional派生注解

@Conditional注解條件成立,才給容器中添加元件。而我們怎麼知道那些自動配置類生效呢?我們可以在application.properties中寫入

debug=true

,控制台會列印自動配置報告。這樣我們就能很友善地得知有哪些自動配置類生效了。

springboot日志架構

一開始,還沒有日志架構的時候,程式猿們都是用syso(System.out.println)将有用的資訊列印出來,但由于syso過于分散,不易管理,是以有了架構。又因為版本更新,導緻API不同,又麻煩了,是以有了接口。目前springboot使用的日志接口是slf4j,實作接口的是logback。需要注意的是,有了統一的接口,配置檔案不統一;使用logback就要使用logback的配置檔案。

但是,一個項目可能使用不同的日志接口。是以有了如下辦法:

springboot學習筆記(3)
  1. 将其他接口包排除
  2. 用中間包代替
  3. 選擇slf4j實作類

在我們自己引入架構時,記住要把這個架構自己的日志架構删除,springboot會自動适配,因為springboot引入了所有主流日志架構接口的中間包。

如果要使用各個實作日志架構的配置檔案,隻需将如下配置檔案放在類路徑下:

架構 配置檔案
logback logback-spring.xml,logback-spring.groovy,logback.xml,logback.groovy
log4j2 log4j2-spring.xml,log4j2.xml
JUL logging.properties

如果配置檔案名為logback-spring.xml,就會繞過日志架構由springboot加載。這時,我們就可以使用springboot的profile功能。

slf4j的使用

package com.example;

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class HelloworldApplicationTests {

	//記錄器
	Logger logger=LoggerFactory.getLogger(getClass());
	
	@Test
	void contextLoads() {
		
		//日志的級别:trace<debug<info<warn<error
		//slf4j有對日志的過濾功能,而且是按照級别進行過濾
		//springboot預設過濾info以下的日志
		logger.trace("這是trace");
		logger.debug("這是debug");
		logger.info("這是info");
		logger.warn("這是warn");
		logger.error("這是error");
	}

}

           
#logging.level.com.example=trace
#設定過濾級别
#logging.file.name=springboot.log
#将日志寫在springboot.log中并生成在項目路徑下
#logging.file.name=D:/springboot.log
#将檔案生成在D盤根目錄下
#logging.file.path=、spring/log
#在目前磁盤根路徑下建立spring檔案夾下的log檔案夾,并放入日志檔案,預設檔案名為spring.log
           

繼續閱讀