Spring Boot 入門示例(十八):Spring Boot 集成 Log4j 日誌框架

Spring Boot 集成 Log4j 日誌框架

Java 有很多日誌系統,如 Java Util Logging, Log4J, Log4J2, Logback 等。Spring Boot 默認的日誌框架是 Java Util Logging,並且 Spring Boot 也支持 Log4J、Logback 這些比較流行的日誌框架。

Java 應用中,日誌一般分爲以下 5 個級別:

  • ERROR 錯誤信息
  • WARN 警告信息
  • INFO 一般信息
  • DEBUG 調試信息
  • TRACE 跟蹤信息

Spring Boot 默認日誌框架

默認情況下,Spring Boot 使用 logback 作爲應用日誌框架。因爲 spring-boot-starter 其中包含了 spring-boot-starter-logging,該依賴內容就是 Spring Boot 默認的日誌框架 Logback。

配置日誌

application.properties 文件中添加配置,如:

# 日誌輸出級別是 info
logging.level.root = INFO

如果想控制特定包的輸出級別,也可以配置 配置 logging.level.* 來決定哪些包的輸出級別。

# 日誌輸出級別是 info
logging.level.root = INFO
logging.level.org.springframework.web = DEBUG

輸出日誌文件

默認情況下, Spring Boot 日誌只會輸出到控制檯,並不會寫入到日誌文件。我們可以在application.properites 文件中配置 logging.file 文件名稱和 logging.path 文件路徑,將日誌輸出到日誌文件中。

# 日誌輸出級別是 info
logging.level.root = INFO
logging.level.org.springframework.web = DEBUG
logging.path = ${user.home}/logs
logging.file = logging.log

使用 Log4j 記錄日誌

添加依賴項

在 pom.xml 文件中添加 Log4j 依賴,並移除默認的 Logback 依賴。

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter</artifactId>
	<exclusions>
		<!-- 排除自帶的logback依賴 -->
		<exclusion>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-logging</artifactId>
		</exclusion>
	</exclusions>
</dependency>
<!-- spring boot-log4j -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>

新建 log4j.propertie 文件

resource 文件下,新建 log4j.properties 文件用於日誌配置。

# 定義輸出的日誌級別
log4j.rootLogger=info,error,CONSOLE,DEBUG
# 表示將輸出位置設定在控制檯
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender     
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout     
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n     
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout     
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = info   
log4j.appender.info.append=true
# 指定info類型的日誌保存地址
log4j.appender.info.File=g:/logs/info/api_services_info
log4j.logger.error=error  
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout     
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = error   
log4j.appender.error.append=true   
# 指定error類型的日誌保存地址
#log4j.appender.error.File=/home/admin/pms-api-services/logs/error/api_services_error
log4j.appender.error.File=g:/logs/error/api_services_error
log4j.logger.DEBUG=DEBUG
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout     
log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  
log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd
log4j.appender.DEBUG.Threshold = DEBUG   
log4j.appender.DEBUG.append=true   
# 指定DEBUG類型的日誌保存地址
log4j.appender.DEBUG.File=g:/logs/debug/api_services_debug

後記

由於自身能力有限,若有錯誤或者不當之處,還請大家批評指正,一起學習交流!

GitHub 源碼地址:springboot-log4j

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