关闭Spring Framework 4.x的日志输出

2019-11-11  本文已影响0人  福柯船长

阅读文章需要对log4j和maven有一定了解

Spring在创建ApplicationContext时在控制台会有一系列INFO级别的启动输出,如下↓

image

想要屏蔽这些输出需要在log4j中做出相关配置,即把Spring在控制台的最低日志输出级别设置为WARN(默认是INFO)。在Spring4.x之前只需要在项目的log4j.properties中加入log4j.category.xxx=WARN,这里的xxx是包的名字,可以从日志输出信息中找到。比如上图中的输出来自org.springframework.beans.factory.xml和org.springframework.context.support,所以我在log4j.properties加入以下两句话。

log4j.category.org.springframework.beans.factory.xml=WARN

log4j.category.org.springframework.context.support=WARN

(ps. 这里的设置会对xxx包下的所有子包都有效,如果想干脆一点,可以直接写:log4j.category.org.springframework = WARN)

但是在Spring 4.x 中日志输出用的不是log4j而是commons.logging,所以无论你在log4j.properties写什么都没用。

一个可行解决方案为:把Spring的日志输出换回log4j,再进行上面所说的配置。

切换过程如下:

  1. 在pom.xml中为spring的dependency加入exclusions,排除commons-logging (我只引入了spring-context这一个spring dependency, 如果有很多spring dependency好像只需要在spring-core中加入exclusions,如果出问题可以在所有的spring dependency中都加上):
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.18.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  1. 添加下面的新dependency
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.5.8</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.5.8</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.5.8</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
        </dependency>
  1. 重载maven

  2. 在log4j.properties中加入上文说到的配置

上一篇下一篇

猜你喜欢

热点阅读