log4j:log4j:ERROR尝试附加到名为[stdout]的已关闭的appender

Vin*_*C M 9 log4j

"试图附加到封闭的appender"是什么意思?

以下是我的log4j.xml文件的一小部分

<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
    <param name="Threshold" value="TRACE" />
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p: %m%n" />
    </layout>
</appender>

<logger name="java.sql" additivity="false">
    <level value="trace" />
    <appender-ref ref="stdout" />
</logger>
Run Code Online (Sandbox Code Playgroud)

我试图打印一些SQL查询,但我收到上述错误.我错过了什么吗?

Pin*_*ino 19

当我的log4j.xml由于复制和不编辑而包含两个与同一个appender相同名称的记录器(也就是类别)时,我得到了这条消息.


man*_*nta 9

在我的例子中,我有两个Log4J可用的log4j.properties:一个通过将它放在类路径中而另一个通过编程方式(使用PropertyConfigurator.configure(..))加载.

在这两个文件中,我ConsoleAppender使用相同的名称注册stdout并使用相同的类别两次(每个属性文件中有一个).删除配置或属性文件解决了我的问题.