springboot整合log4j2
阿新 • • 發佈:2019-03-31
font strong 增加 per 底層 pid ade 應用程序 1.4
springboot整合log4j2
參考:https://www.cnblogs.com/keeya/p/10101547.html#%E5%8F%82%E8%80%83%E6%96%87%E7%AB%A0
1、常用日誌框架
- java.util.logging:是JDK在1.4版本中引入的Java原生日誌框架
- Log4j:Apache的一個開源項目,可以控制日誌信息輸送的目的地是控制臺、文件、GUI組件等,可以控制每一條日誌的輸出格式,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。雖然已經停止維護了,但目前絕大部分企業都是用的log4j。
- LogBack:是Log4j的一個改良版本
- Log4j2:Log4j2已經不僅僅是Log4j的一個升級版本了,它從頭到尾都被重寫了
2、日誌門面slf4j
上述介紹的是一些日誌框架的實現,這裏我們需要用日誌門面來解決系統與日誌實現框架的耦合性。SLF4J,即簡單日誌門面(Simple Logging Facade for Java),它不是一個真正的日誌實現,而是一個抽象層( abstraction layer),它允許你在後臺使用任意一個日誌實現。
前面介紹的幾種日誌框架一樣,每一種日誌框架都有自己單獨的API,要使用對應的框架就要使用其對應的API,這就大大的增加應用程序代碼對於日誌框架的耦合性。
使用了slf4j後,對於應用程序來說,無論底層的日誌框架如何變,應用程序不需要修改任意一行代碼,就可以直接上線了。
3、整合步驟
3.1、引入jar包
###springboot默認是用logback的日誌框架的,所以需要排除logback,不然會出現jar依賴沖突的報錯。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions><!-- 去掉springboot默認配置 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency> <!-- 引入log4j2依賴 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
3.2、配置文件模板
log4j是通過一個.properties的文件作為主配置文件的,而現在的log4j2則已經棄用了這種方式,采用的是.xml,.json或者.jsn這種方式來做,可能這也是技術發展的一個必然性,因為properties文件的可閱讀性 真的是有點差。
springboot整合log4j2