禁用外部库的log4j和slf4j初始化输出

时间:2018-04-03 08:57:54

标签: java log4j slf4j

运行我的应用程序时,我在stdout上看到以下log4j初始化信息:

log4j: Threshold ="null".
log4j: Level value for root is  [OFF].
log4j: root level set to OFF
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n].
log4j: Adding appender named [console] to category [root].

这可能来自使用log4jslf4j的外部图书馆。 我试图压制这些初始化信息,但即使将根记录器级别设置为OFF似乎也没有任何效果。 这是log4j.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
                     xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <root>
        <level value="OFF" />
        <appender-ref ref="console" />
    </root>

</log4j:configuration>

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

解决了在log4j.xml中将debug设置为false的问题:

<log4j:configuration debug="false"
                     xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <root>
        <level value="OFF" />
        <appender-ref ref="console" />
    </root>

</log4j:configuration>