【问题标题】:Disable log4j and slf4j initialization output for external libraries禁用外部库的 log4j 和 slf4j 初始化输出
【发布时间】:2018-04-03 08:57:54
【问题描述】:

运行我的应用程序时,我在标准输出上看到以下 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>

有什么建议吗?

【问题讨论】:

  • 这是因为你的配置中有debug="true"
  • 谢谢!这很容易

标签: java log4j slf4j


【解决方案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>

【讨论】:

    猜你喜欢
    • 2012-04-17
    • 1970-01-01
    • 2011-05-22
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2017-11-11
    • 1970-01-01
    相关资源
    最近更新 更多