log4j: log4j:ERROR Attempted to append to closed appender named [stdout][英] log4j: log4j:ERROR Attempted to append to closed appender named [stdout]

本文是小编为大家收集整理的关于log4j: log4j:ERROR Attempted to append to closed appender named [stdout]的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

"试图附加封闭的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>

我正在尝试打印一些SQL查询,但是我会遇到上述错误.我想念什么吗?

推荐答案

我收到了此消息,因为我的log4j.xml包含了一个复制和登机编辑,两个登录器(又称类别),同名链接到同一appender.

.

其他推荐答案

在我的情况下,我有两个log4j.properties for log4j:一个是通过将其放在classPath中,而另一个则通过编程加载(使用PropertyConfigurator.configure(..)).

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

其他推荐答案

在我的情况下,我在同一软件包名称上使用了2个logger元素.删除其中一个解决了问题.

<logger name="org.activiti.engine" additivity="false">
    <level value="error" />
    <appender-ref ref="LOGFILE" />
  </logger>
  <logger name="org.activiti.engine" additivity="false">
    <level value="debug" />
    <appender-ref ref="activitiBPMLog" />
  </logger>

本文地址:https://www.itbaoku.cn/post/1574818.html

问题描述

What is meant by "Attempted to append to closed appender " ?

The following is a small part of my log4j.xml file

<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>

I am trying to print some sql queries out , but I am getting the above error . Am I missing something ?

推荐答案

I got this message when my log4j.xml contained, due to a copy-and-dont-edit, two loggers (aka categories) with the same name linked to the same appender.

其他推荐答案

In my case, I've two log4j.properties available to the Log4J: one via placing it in classpath and other being loaded programmatically (using PropertyConfigurator.configure(..)).

And in the two files, I've ConsoleAppender registered with same name stdout and used for same category twice (one in each properties file). Removing config or the properties file solved my issue.

其他推荐答案

In my case, I used 2 logger elements on same package name caught into this error. removing one of them solved the problem.

<logger name="org.activiti.engine" additivity="false">
    <level value="error" />
    <appender-ref ref="LOGFILE" />
  </logger>
  <logger name="org.activiti.engine" additivity="false">
    <level value="debug" />
    <appender-ref ref="activitiBPMLog" />
  </logger>