我在控制台上反复出现以下错误
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender].
log4j:ERROR Attempted to append to closed appender named [FixedWindowRollingFile].
Run Code Online (Sandbox Code Playgroud)
<?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>
Run Code Online (Sandbox Code Playgroud)
请帮我解决问题所在.
小智 25
我得到了同样的错误:
log4j:ERROR Attempted to append to closed appender named [rollingFileAppender].
Run Code Online (Sandbox Code Playgroud)
在我的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>
Run Code Online (Sandbox Code Playgroud)
我删除了副本,它工作.
man*_*nta 24
我在这里回答了类似的问题:https://stackoverflow.com/a/9973283/340290
在我的例子中,我有两个Log4J可用的log4j.properties:一个通过将它放在类路径中而另一个通过编程方式(使用PropertyConfigurator.configure(..))加载.
在这两个文件中,我ConsoleAppender使用相同的名称注册stdout并使用相同的类别两次(每个属性文件一个).删除配置或属性文件解决了我的问题.
可以使用以下方法覆盖配置:
BasicConfigurator.resetConfiguration();
PropertyConfigurator.configure(props);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67031 次 |
| 最近记录: |