the - log4j: ERROR Se intentó adjuntar al appender cerrado llamado
log4j xml appender file example (6)
Esto también puede significar que ya tiene su servidor en ejecución y está intentando ejecutarlo nuevamente. La segunda instancia no puede escribir en el archivo de registro porque ya está abierto en su servidor.
solución: compruebe si su servidor ya se está ejecutando y reinícielo si es necesario.
Estoy recibiendo los siguientes errores en mi consola repetidamente
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender].
log4j:ERROR Attempted to append to closed appender named [FixedWindowRollingFile].
log4j.xml usado
<?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>
por favor ayudame donde esta el problema
No estoy diciendo que esta sea la causa del comportamiento que describe (pero podría hacerlo), pero esta parte:
<logger name="com.arosys" additivity="false" >
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="FixedWindowRollingFile"/>
</logger>
es inútil Normalmente, configuraría un registrador no aditivo para redirigirlo a otro lugar que no sea el lugar predeterminado (su registrador raíz), pero aún así enviará la salida al lugar predeterminado. También podrías eliminar este fragmento.
Solo para aclarar porque la respuesta de MaDa me engañó, additivity = false redirige la salida a otro lugar que el predeterminado (registrador raíz) y NO al predeterminado. Consulte http://logging.apache.org/log4j/1.2/manual.html capítulo "Anexos y diseños"
Tengo el mismo error:
log4j:ERROR Attempted to append to closed appender named [rollingFileAppender].
En mi log4j.xml
Tengo dos madereros con el mismo nombre como abajo
<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>
Quité el duplicado, funcionó.
Uno podría sobrescribir la configuración usando:
BasicConfigurator.resetConfiguration();
PropertyConfigurator.configure(props);
He respondido una pregunta similar aquí: https://.com/a/9973283/340290
En mi caso, tengo dos log4j.properties disponibles para Log4J: una a través de la colocación en classpath y otra que se carga mediante programación (utilizando PropertyConfigurator.configure(..)
).
Y en los dos archivos, he registrado ConsoleAppender
con el mismo nombre stdout
y he usado la misma categoría dos veces (una por cada archivo de propiedades). Eliminar la configuración o el archivo de propiedades resolvió mi problema.