Log4j 2環境配置和適配組件配置(maven/ivy/gradle)

本文譯自:
http://logging.apache.org/log4j/2.x/maven-artifacts.html

詳細目錄
Apache Log4j 2 中文文檔

所需環境

Log4j 2.4及更高的版本至少需要Java 7, 2.0-alpha1到2.3版本至少需要Java 6。部分特性需要添加可選依賴,相應的文檔中會具體指明。

下載

請在官網下載jar包,下載地址

在classpath添加API和Core兩個jar包即可。

log4j-api-2.6.2.jar
log4j-core-2.6.2.jar

Maven、Ivy和 Gradle配置

Maven

pom.xml文件中加入

    <dependencies>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.6.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.6.2</version>
      </dependency>
    </dependencies>

BOM(Bill of Material)

爲了使Log4j多個模塊的版本相互保持一致,你可以使用帶BOM的pom.xml文件。在maven的pom.xml中加入以下內容,這樣在後續添加依賴時就不用指定版本了。

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-bom</artifactId>
          <version>2.6.2</version>
          <scope>import</scope>
          <type>pom</type>
        </dependency>
      </dependencies>
    </dependencyManagement>

Gradle

build.gradle文件中加入

dependencies {
      compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.6.2'
      compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.6.2'
    }

Ivy

ivy.xml文件中加入

<dependencies>
      <dependency org="org.apache.logging.log4j" name="log4j-api" rev="2.6.2" />
      <dependency org="org.apache.logging.log4j" name="log4j-core" rev="2.6.2" />
    </dependencies>

可選組件

Log4j 1.x API 橋接器

如果項目中已有代碼使用了Log4j 1.x,然而你想使用Log4j 2的內核,那麼請移除Log4j 1.x的所有依賴,並添加以下橋接器。
pom.xml

<dependencies>
   <dependency>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-1.2-api</artifactId>
     <version>2.6.2</version>
   </dependency>
 </dependencies>

ivy.xml

<dependencies>
  <dependency org="org.apache.logging.log4j" name="log4j-1.2-api" rev="2.6.2" />
</dependencies>

build.gradle

dependencies {
      compile group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: '2.6.2'
    }

SLF4J 橋接器

如果項目中已有代碼使用了SLF4J,然而你想使用Log4j 2的內核,這時無需移除SLF4J的依賴,只需添加下面的依賴。
pom.xml

 <dependencies>
   <dependency>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-slf4j-impl</artifactId>
     <version>2.6.2</version>
   </dependency>
 </dependencies>

Apache Commons Logging 橋接器

如果項目中已有代碼使用了Apache Commons Logging 1.x,然而你想使用Log4j 2的內核,這時無需移除任何Commons Logging的依賴,只需添加下面的依賴。
pom.xml

  <dependencies>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-jcl</artifactId>
      <version>2.6.2</version>
    </dependency>
  </dependencies>

JUL 適配器

如果項目中已有代碼使用了Java.util.Logging,然而你想使用Log4j 2的內核,只需添加下面的依賴。
pom.xml

 <dependencies>
   <dependency>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-jul</artifactId>
     <version>2.6.2</version>
   </dependency>
 </dependencies>

Web Servlet 支持

爲了正確處理web應用的ClassLoader環境和容器生命週期,你需要添加額外的模塊。本模塊僅在運行時才需要。此外,如果你在OSGi環境中使用了servlet,請保證你的servlet API首選版本已被加載(比如當你想用servlet 3.0時,此時2.5已經被加載了,那麼此時仍須加載3.0版本)。
pom.xml

 <dependencies>
   <dependency>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-jul</artifactId>
     <version>2.6.2</version>
   </dependency>
 </dependencies>

Apache Flume Appender

Flume Appender允許應用將日誌事件發送到Flume Agent上。
pom.xml

<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-flume-ng</artifactId>
    <version>2.6.2</version>
  </dependency>
</dependencies>

Log4j to SLF4J 適配器

Log4j to SLF4J 適配器可以將針對Log4j 2 API編寫的實現類轉爲適配SLF4J接口。也就是當你的項目中使用的是Log4j 2 API,這時你想把日誌內核替換成某一種SLF4J的實現,那麼請使用本適配器,圖文介紹見後續的FAQ。使用本適配器將降低部分性能,因爲Log4j 2的消息在傳遞給SLF4J時必須先進行格式化。注意該適配器不能與SLF4J橋接器同時使用。
pom.xml

<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-to-slf4j</artifactId>
    <version>2.6.2</version>
  </dependency>
</dependencies>

轉載請註明出處:Log4j 2環境配置和適配組件配置(maven/ivy/gradle)
http://blog.csdn.net/yangcheng33/article/details/52725910

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