360SDN.COM

Spring Framework 5 权威指南(4)

来源:程序员阮威  2017-09-11 13:24:08    评论:0点击:

这是一个Spring 5专题系列,其诞生的动机是:

  1. 介绍最新的Spring Framework特性;

  2. 介绍最系统化的Spring Framework

  3. 介绍最佳实践的Spring Framework

4.   Spring Framework日志系统

Spring 5开始,Spring引用了spring-jcl模块中自定义的Commons Logging桥接器,自动桥接到Log4j2SLF4J,以及JDK自带的JUL(java.util.logging)。这样做的好处是,不再需要外部的像JCL-over-SLF4J这样的桥接器,同时也不再需要手动排除spring-coreCommons Logging的依赖。你只要使Log4j2或者SLF4J存在于classpath中即可(如果Log4j2SLF4J同时存在,前者优先,如果均不存在,则使用JUL)

如果使用Log4j2,添加如下依赖即可(不再需要log4j-jcl):

<dependencies>

  <dependency>

    <groupId>org.apache.logging.log4j</groupId>

    <artifactId>log4j-core</artifactId>

    <version>2.8.2</version>

  </dependency>

</dependencies>

如果要将第三库使用的Log4j,JUL,JCL或者SLF4J也代理到Log4j2,需要再添加以下依赖:

<dependencies>

  <dependency>

        <groupId>org.apache.logging.log4j</groupId>

        <artifactId>log4j-1.2-api</artifactId>

        <version>2.8.2</version>

  </dependency>

  <dependency>

        <groupId>org.apache.logging.log4j</groupId>

        <artifactId>log4j-jul</artifactId>

        <version>2.8.2</version>

  </dependency>

  <dependency>

        <groupId>org.apache.logging.log4j</groupId>

        <artifactId>log4j-jcl</artifactId>

        <version>2.8.2</version>

  </dependency>

  <dependency>

    <groupId>org.apache.logging.log4j</groupId>

    <artifactId>log4j-slf4j-impl</artifactId>

    <version>2.8.2</version>

  </dependency>

</dependencies>

        如果使用Logback而不是Log4j2,添加以下依赖(不再需要jcl-over-slf4j)

<dependencies>

  <dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>slf4j-api</artifactId>

    <version>1.7.25</version>

  </dependency>

 <dependency>

    <groupId>ch.qos.logback</groupId>

    <artifactId>logback-classic</artifactId>

    <version>1.2.2</version>

  </dependency>

</dependencies>

如果要将第三方库使用的Log4jJULJCL或者Log4J2也代理到SLF4J,需要再添加以下依赖:

<dependencies>

  <dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>log4j-over-slf4j</artifactId>

    <version>1.7.25</version>

  </dependency>

  <dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>jul-to-slf4j</artifactId>

    <version>1.7.25</version>

  </dependency>

  <dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>jcl-over-slf4j</artifactId>

    <version>1.7.25</version>

  </dependency>

  <dependency>

    <groupId>org.apache.logging.log4j</groupId>

    <artifactId>log4j-to-slf4j</artifactId>

    <version>1.7.25</version>

  </dependency>

</dependencies>

        日志系统是比较让人困惑的,如果你实在是搞不清楚,直接拷贝上面的配置。spring-jcl充当了log4j-jcl和jcl-over-slf4j的作用,仅供Spring Framework内部或扩展使用,应用建议直接使用Log4j2,不再使用JCL,JSL4J,和Logback。

最后送个福利:手绘Java日志系统:


阅读原文

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权