You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@logging.apache.org by Peter <li...@gmail.com> on 2007/06/20 06:30:06 UTC

log4j:ERROR Attempted to append to closed appender named [DEFAULT_LOGFILE].

hi,all

we are using log4j in our system. and it appeals  so many following erros;

 log4j:ERROR Attempted to append to closed appender named [DEFAULT_LOGFILE].

does anyone has an idea why and how to sovle it.

thanks !

here is our 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 name="OTHERS_LOGFILE" class="org.apache.log4j.RollingFileAppender
">
  <param name="Threshold" value="DEBUG"/>
  <param name="File" value="../logs/others.log"/>
  <param name="Append" value="false"/>
  <param name="MaxFileSize" value="2000KB"/>
  <param name="MaxBackupIndex" value="10"/>
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
  </layout>
 </appender>

 <appender name="DEFAULT_LOGFILE" class="
org.apache.log4j.RollingFileAppender">
  <param name="Threshold" value="DEBUG"/>
  <param name="File" value="../logs/shucoms.log"/>
  <param name="Append" value="false"/>
  <param name="MaxFileSize" value="2000KB"/>
  <param name="MaxBackupIndex" value="10"/>
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
  </layout>
 </appender>



 <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">

  <appender-ref ref="OTHERS_LOGFILE"/>

  <appender-ref ref="DEFAULT_LOGFILE"/>

 </appender>

 <category name="gxlu.eoms" additivity="false">
  <priority value="DEBUG"/>
  <appender-ref ref="DEFAULT_LOGFILE"/>
 </category>
 <category name="org" additivity="false">
  <priority value="INFO"/>
  <appender-ref ref="OTHERS_LOGFILE"/>
 </category>

<!-- Setup the Root category -->
 <root>
  <priority value="DEBUG"/>
  <appender-ref ref="ASYNC"/>
 </root>
</log4j:configuration>

Re: log4j:ERROR Attempted to append to closed appender named [DEFAULT_LOGFILE].

Posted by Curt Arnold <ca...@apache.org>.
On Jun 19, 2007, at 11:30 PM, Peter wrote:

> hi,all
>
> we are using log4j in our system. and it appeals  so many following  
> erros;
>
>  log4j:ERROR Attempted to append to closed appender named  
> [DEFAULT_LOGFILE].
>
> does anyone has an idea why and how to sovle it.
>
> thanks !
>
> here is our 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 name="OTHERS_LOGFILE"  
> class="org.apache.log4j.RollingFileAppender">
>   <param name="Threshold" value="DEBUG"/>
>   <param name="File" value="../logs/others.log"/>
>   <param name="Append" value="false"/>
>   <param name="MaxFileSize" value="2000KB"/>
>   <param name="MaxBackupIndex" value="10"/>
>   <layout class=" org.apache.log4j.PatternLayout">
>    <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
>   </layout>
>  </appender>
>
>  <appender name="DEFAULT_LOGFILE"  
> class="org.apache.log4j.RollingFileAppender">
>   <param name="Threshold" value="DEBUG"/>
>   <param name="File" value="../logs/shucoms.log"/>
>   <param name="Append" value="false"/>
>   <param name="MaxFileSize" value="2000KB"/>
>   <param name="MaxBackupIndex" value="10"/>
>   <layout class=" org.apache.log4j.PatternLayout">
>    <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
>   </layout>
>  </appender>
>
>
>  <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
>
>   <appender-ref ref="OTHERS_LOGFILE"/>
>
>   <appender-ref ref="DEFAULT_LOGFILE"/>
>
>  </appender>
>
>  <category name="gxlu.eoms" additivity="false">
>   <priority value="DEBUG"/>
>   <appender-ref ref="DEFAULT_LOGFILE"/>
>  </category>
>  <category name="org" additivity="false">
>   <priority value="INFO"/>
>   <appender-ref ref="OTHERS_LOGFILE"/>
>  </category>
>
> <!-- Setup the Root category -->
>  <root>
>   <priority value="DEBUG"/>
>   <appender-ref ref="ASYNC"/>
>  </root>
> </log4j:configuration>
>
>
>

The log4j-user mailing list would be the appropriate forum for this  
type of question.  Please do not respond to this message on  
general@logging.apache.org as this mailing list is for discussion  
that either applies to more than one of the projects or doesn't fit  
into any of the existing projects.

There are a couple of problems in your configuration file regarding  
AsyncAppender that could result in the problem that you are seeing.   
An instance of AsyncAppender wraps ONE appender and maintains the  
event queue and threads necessary to allow the application to  
continue before logging event processing is complete.  The appender  
wrapped by AsyncAppender is seldom if ever used directly after being  
wrapped.

In your configuration file, you attempt to wrap two appenders in one  
instance of AsyncAppender and you use both appenders independently of  
AsyncAppender.  Since the appenders are independently attached to  
loggers, they will be closed when the application is shut down which  
may be while the AsyncAppender is still dispatching deferred events  
to the appender.

If you avoid using wrapped appenders directly and do not attempt to  
wrap two appenders in one AsyncAppender, your problem will likely go  
away.

If you have any more questions or comments, please post them on log4j- 
user@logging.apache.org.