Log4j 2环境配置和适配组件配置(maven/ivy/gradle)

Posted 小杨Vita

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Log4j 2环境配置和适配组件配置(maven/ivy/gradle)的主要内容,如果未能解决你的问题,请参考以下文章

maven+SSM+shiro+junit+jetty+log4j环境配置的最佳实践

maven如何配置

slf4j+log4j2的配置

Log4j2+spring+maven配置

SSM环境集成log4j

log4j 配置和使用