问题描述
我反复在控制台上遇到以下错误
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. log4j:ERROR Attempted to append to closed appender named [FixedWindowRollingFile].
使用的log4j.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender class="org.apache.log4j.rolling.RollingFileAppender" name="FixedWindowRollingFile"> <param name="Append" value="true"/> <param name="ImmediateFlush" value="true"/> <rollingPolicy class="org.apache.log4j.rolling.FixedWindowRollingPolicy"> <param name="fileNamePattern" value="logs/StandardizeAccountService.%i.log"/> <param name="minIndex" value="1"/> <param name="maxIndex" value="10"/> </rollingPolicy> <triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy"> <param name="MaxFileSize" value="1002400"/> </triggeringPolicy> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p %c{1}:%L - %m%n"/> </layout> </appender> <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.SimpleLayout"/> </appender> <logger name="com.arosys" additivity="false" > <level value="INFO" /> <appender-ref ref="ConsoleAppender" /> <appender-ref ref="FixedWindowRollingFile"/> </logger> <root> <priority value="INFO"/> <appender-ref ref="ConsoleAppender"/> <appender-ref ref="FixedWindowRollingFile"/> </root> </log4j:configuration>
请帮助我问题.
推荐答案
就我而言,我有两个log4j.properties可用于log4j:一个是通过将其放置在classPath中,另一个是通过编程加载的(使用PropertyConfigurator.configure(..)).
和两个文件中,我ConsoleAppender注册了同名stdout,并两次用于同一类别(每个属性文件一个).删除配置或属性文件解决了我的问题.
其他推荐答案
我有相同的错误:
log4j:ERROR Attempted to append to closed appender named [rollingFileAppender].
在我的log4j.xml中
我有两个登录器,具有相同的名称,例如
<logger name="java.sql.PreparedStatement" additivity="false"> <level value="INFO"/> <appender-ref ref="rollingFileAppender"/> </logger> <logger name="java.sql.PreparedStatement"> <level value="INFO"/> <appender-ref ref="rollingFileAppender"/> </logger>
我删除了副本,它起作用了.
其他推荐答案
一个人可以使用:
覆盖BasicConfigurator.resetConfiguration(); PropertyConfigurator.configure(props);
问题描述
I am getting following errors on my console repeatedly
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. log4j:ERROR Attempted to append to closed appender named [FixedWindowRollingFile].
used log4j.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender class="org.apache.log4j.rolling.RollingFileAppender" name="FixedWindowRollingFile"> <param name="Append" value="true"/> <param name="ImmediateFlush" value="true"/> <rollingPolicy class="org.apache.log4j.rolling.FixedWindowRollingPolicy"> <param name="fileNamePattern" value="logs/StandardizeAccountService.%i.log"/> <param name="minIndex" value="1"/> <param name="maxIndex" value="10"/> </rollingPolicy> <triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy"> <param name="MaxFileSize" value="1002400"/> </triggeringPolicy> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p %c{1}:%L - %m%n"/> </layout> </appender> <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.SimpleLayout"/> </appender> <logger name="com.arosys" additivity="false" > <level value="INFO" /> <appender-ref ref="ConsoleAppender" /> <appender-ref ref="FixedWindowRollingFile"/> </logger> <root> <priority value="INFO"/> <appender-ref ref="ConsoleAppender"/> <appender-ref ref="FixedWindowRollingFile"/> </root> </log4j:configuration>
please help me where the problem.
推荐答案
I've answered similar question here: https://stackoverflow.com/a/9973283/340290
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 per each properties file). Removing config or the properties file solved my issue.
其他推荐答案
I got the same error:
log4j:ERROR Attempted to append to closed appender named [rollingFileAppender].
In my log4j.xml
I have two loggers with the same name like below
<logger name="java.sql.PreparedStatement" additivity="false"> <level value="INFO"/> <appender-ref ref="rollingFileAppender"/> </logger> <logger name="java.sql.PreparedStatement"> <level value="INFO"/> <appender-ref ref="rollingFileAppender"/> </logger>
I removed the duplicate, it worked.
其他推荐答案
One could overwrite the configuration using:
BasicConfigurator.resetConfiguration(); PropertyConfigurator.configure(props);