Spring Boot學習筆記(4)——SpringBoot日誌配置

springboot默認採用的是 slf4j+logback 的組合形式,日誌抽象層是 slf4j,日誌實現層是 logback,Spring Boot也提供對JUL、log4j2、Logback提供了默認配置。

SpringBoot默認日誌配置

1、SpringBoot默認配置好了日誌, 只要啓動 Spring Boot 項目就會在控制檯輸出日誌信息。

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootLoggingApplicationTests {
	//日誌記錄器
	Logger logger = LoggerFactory.getLogger(getClass());
	
	@Test
	public void contextLoads() {
		/**
		 * 1、日誌信息的級別:trace < debug < info < warn < error
		 * 2、springboot默認的日誌信息級別時info級別,也就是日誌 root 級別是 info級別,root級別是什麼,則只會打印 大於等於 root級別的日誌信息
		 * 3、可以在 application.properties 配置文件中修改當前項目的pacakge的 root 級別,沒有修改則默認使用springboot默認的root級別
		 * 4、也可以在 application.properties 修改 當前項目的 root 級別,這樣就就修改了項目引入的 jar 包的 root級別
		 */
		logger.trace("這是 trace 日誌信息");
		logger.debug("這是 debug 日誌信息");
		logger.info("這是 info 日誌信息");
		logger.warn("這是 warn 日誌信息");
		logger.error("這是 error 日誌信息");
	}
}

2、修改默認日誌配置的root級別,在全局配置文件 application.properties 中修改

#修改當前項目的 package 下面的的日誌級別
logging.level.com.dss.springboot=debug

#修改整個項目的 root 級別,會影響項目引入的 jar 包的日誌級別,所以一般在項目中只修改 當前項目的 pacakge 下的root級別
logging.level.root=debug

3、修改默認日誌配置:
1)、修改日誌文件的輸出路徑:
可以在 application.properties 配置文件中進行配置,具體 枚舉 如下:
在這裏插入圖片描述

#指定日誌輸出到哪個文件中,指定之後,會在輸入日誌到當前項目的根路徑下的 springboot.log 文件中(這個文件名可以自己指定)
#如果指定的 文件不存在,則會自動創建文件,如果指定的文件存在,則會將日誌信息 追加 到已有的文件中
#這個配置也可以指定日誌文件輸出到 某個目類下,如: logging.file=E:/springboot.log
logging.file=springboot.log

#指定日誌輸出到哪個 path 下,這裏日誌會默認輸出在 文件名 爲 spring.log 的文件中
#指定path後,日誌會輸入出當前項目所在的磁盤根路徑下,例如:項目在D盤的一個文件夾中,則會在D盤根目錄下創建一個 /springboot/log 的文件夾,裏面有 spring.log 文件
logging.path=/springboot/log

2)、修改日誌的輸出格式:

# 日誌輸出格式說明:
# 	%d 輸出日期時間,
# 	%thread 輸出當前線程名,
# 	%-5level 輸出日誌級別,左對齊5個字符寬度
# 	%logger{50} 輸出全類名最長50個字符,超過按照句點分割
# 	%msg 日誌信息
# 	%n 換行符

#修改控制檯輸出的日誌格式(不會改變寫入到 日誌文件 中的日誌格式)
logging.pattern.console=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} - %msg%n

#修改輸入到日誌文件中的 日誌格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} >>> [%thread] >>> %-5level >>> %logger{50} >>> %msg%n
自定義springBoot日誌配置

1、要採用自定義的日誌配置,如果採用的是 logback 日誌,則需要在 類路徑 下加上 logback.xml 或者 logback-spring.xml 文件;當在 類路徑下加上 logback.xml 文件後,SpringBoot就不會使用它默認的日誌配置文件
2、在 resources 目錄下創建 logback.xml,文件內容與 平常的日誌配置文件 logback.xml一樣
3、啓動項目之後,logback.xml就會直接被日誌框架加載
4、也可以創建 logback-spring.xml 配置文件,配置項不會被日誌框架直接加載,而是由 SpringBoot 解析日誌配置文件,進而可以使用 SpringBoot 的 Profile 特殊配置,例如:
1)、把 logback.xml 重命名爲 logback-spring.xml,之後在文件內容裏找到輸出到控制檯的日誌格式:修改爲:

<!-- ch.qos.logback.core.ConsoleAppender 表示控制檯輸出 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
	<!-- 日誌輸出格式說明: %d 輸出日期時間 %thread 輸出當前線程名 %-5level 輸出日誌級別,左對齊5個字符寬度 %logger{50} 
		輸出全類名最長50個字符,超過按照句點分割 %msg 日誌信息 %n 換行符 -->
	<layout class="ch.qos.logback.classic.PatternLayout">
		<!--如果啓動的prifile是開發環境,則使用這個日誌輸出格式-->
		<springProfile name="dev">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} === [%thread] === %-5level ==== %logger{50} - %msg%n</pattern>
		</springProfile>
		<!--如果啓動的prifile是不是開發環境,則使用這個日誌輸出格式-->
		<springProfile name="!dev">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} >>> [%thread] >>> %-5level >>> %logger{50} - %msg%n</pattern>
		</springProfile>
	</layout>
</appender>

2)、在 application.properties 配置文件中,通過 spring.profiles.active = xxx,來配置啓動的是哪個prifile,就可以控制不同的日誌輸出格式
5、注意: Spring的Profile特殊配置,只能在logback-spring.xml文件中配置,如果自定義日誌配置文件是 logback.xml,加上 springProfile 標籤後,啓動項目就會報錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章