springBoot2.x中日誌框架的基本使用

1.爲什麼使用日誌框架

1.1 原因

在springBoot中,當我們打印一些信息的時候,一般使用system.out.println(),有時候寫的打印語句比較多,這就會當導致在控制檯窗口中打印很多信息。

缺點:
1)在開發調試的時候,可以打印一些語句,但是測試、部署的時候,不需要打印這些語句,這時候變得很麻煩,需要一個個註釋掉。

2)有時候打印的消息,會不斷的調整,這也會導致反覆的註釋。

這時候就需要一個日誌框架就行處理這種情況。

1.2 常見的日誌框架

日誌框架是由日誌門面(即接口類)和日誌實現(實現類)組成。

1)常見的日誌門面:JCL(Apache下的已不再更新)、jboss-logging(不常用)、SLF4J(simple Logging Facade for java)

2)常見的日誌實現:JUL(Java util logging,java自帶的)、log4j、logback、log4j2(apache借log4j名重新寫的一個實現類)

說明:SLF4J、log4j、logback爲同一個人寫的。logback比log4j好,log4j有性能問題。所以一般使用slf4j + logback 或者slf4j + log4j2

2.springBoot中默認的日誌框架

在springBoot中,默認的日誌框架是slf4j + logback

2.1 基本使用

package com.lna.demo.logExample;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

@Component
public class LogExample {

	//使用slf4j作爲抽象層,logback作爲實現類
	//Logger是一個接口類,具體的類型有LoggerFactory這個工廠類進行返回
	static Logger logger =  LoggerFactory.getLogger(LogExample.class);
	
	public LogExample() {
		//日誌級別從低到高,日誌輸出,只會在當前級別和這個級別之後的高級級別生效
		//trace<debug<info<warn<error
		//默認級別爲info
		logger.trace("LogExample....trace");
		logger.debug("LogExample....debug");
		//下面爲打印信息,上面不能打印
		logger.info("LogExample....info");
		logger.warn("LogExample....warn");
		logger.error("LogExample....error");
	}
}

由於默認的日誌級別爲info級別,則上面構造函數打印的信息爲info、warn、error中的信息。

2.2 修改默認配置

在application.properties中修改默認配置

例如修改

##修改默認日誌的級別,默認爲info,這裏把logExample包中的LogExample類中的日誌修改爲debug
#logging.level.com.lna.demo.logExample.LogExample = debug
#
##可以保存日誌文件,不指定路徑,默認是保存在當前項目下
##logging.file.name = logExample.log
#
## 指定路徑,默認日誌名稱:spring.log
#logging.file.path = C:/springLog/log
#
##logging.file.name和logging.file.path不能同時用,如果默認設置只會在控制檯上打印

2.3 自定義配置

在application.properties中配置如果不滿足自己,則也可以單獨使用一個文件配置。放在src/main/resources下面,每個框架的默認的名字不一樣
圖3
上述包含2種命名的xml文件。區別在於:
1)xxx.xml可以直接被日誌框架所識別。
2)xxx-spring.xml:日誌框架就不直接加載日誌的配置項,由SpringBoot解析日誌配置,可以使用SpringBoot的高級profile功能。

3.切換到其他類型的日誌框架

springBoot2.x和springBoot1.5.x有一些區別。底層的spring版本不同。springBoot2.x使用的spring5,而springBoot1.5.x使用的spring4。在更新spring時,spring5和spring4中的日誌框架有一些改動。但是切換日誌框架的步驟一致。如圖
圖1

上圖爲springBoot1.5.x的日誌框架結構

在這裏插入圖片描述
上圖爲springBoot2.x的日誌框架結構

切換日誌框架的步驟

1)先排除默認的日誌依賴

2)添加切換的日誌依賴

舉例說明:

springBoot2.x中從默認的slf4j + logback切換爲:slf4j + log4j2

 <!-- 更換日誌框架slf4j+log4j2 ,排除默認的Logback-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter</artifactId>
	<exclusions>
		<exclusion>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-logging</artifactId>
		</exclusion>
	</exclusions>
</dependency>
<!--添加Log4j2-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章