1. 程式人生 > >springboot整合log4j2

springboot整合log4j2

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