Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/06/2011, 11:33
Santics
 
Fecha de Ingreso: diciembre-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 1
log4j - DailyRollingFileAppender falla al hacer backup

Hola!!

Soy relativamente nuevo usando LOG4J y he tenido que aprender a base de tropiezos (como todos, supongo)... Pero este bache me esta costando demasiado superarlo por mi mismo. Ojala me podais ayudar. A ver si consigo explicarlo:

Escenario: Tengo un servicio web que llama a un JAR (delivery-service.jar) cada vez que quiere realizar el envio de un fichero. Y es en ese JAR donde uso LOG4J para tener un log de todos los envios realizados.

Este es mi archivo log4j.xml:
Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
  3. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  4.     <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
  5.                 <appender-ref ref="LOGFILE"/>
  6.     </appender>
  7.     <appender class="org.apache.log4j.DailyRollingFileAppender" name="LOGFILE">
  8.         <param value="'.'yyyy-MM-dd" name="DatePattern"/>
  9.         <param value="true" name="Append"/>
  10.         <param value="/internet/logs/delivery-service.log" name="File"/>
  11.         <param value="DEBUG" name="Threshold"/>
  12.         <layout class="org.apache.log4j.PatternLayout">
  13.             <param value="%d %-5p %c - %m%n" name="ConversionPattern"/>
  14.         </layout>
  15.     </appender>
  16.     <logger name="com.santics" additivity="false">
  17.         <level value="debug"/>
  18.         <appender-ref ref="LOGFILE"/>
  19.     </logger>
  20.     <root>
  21.         <level value="info"/>
  22.         <appender-ref ref="LOGFILE"/>
  23.         <appender-ref ref="ASYNC"/>
  24.     </root>
  25. </log4j:configuration>
Con el que intento tener un log que haga backup diariamente (DatePattern = '.'yyyy-MM-dd).

Todas las noches a las 00:30 mi sistema realiza 5 envios.

El fallo: Pues bien, el LOG4J, en vez de meter los logs de esos 5 envios en un nuevo "delivery-service.log" (pues son los primeros envíos del día), y guardar el viejo log en "delivery-service.log.2011-06-07", esto es lo que me crea:
  1. "delivery-service.log": Donde nos encontramos solo una parte de los logs referentes a esos 5 envíos realizados a las 00:30 (A veces están los logs de 3 envios, a veces los de 4... puede que eso sea una pista, pero no caigo por más que le doy vueltas)
  2. "delivery-service.log.2011-06-07": Donde está el resto de los logs referentes a los 5 envios realizados a las 00:30, pero no hay ni rastro de los logs que se fueron almacenando durante el dia 2011-06-07, con lo cual se han perdido.

Dicho de otra manera: me crea un backup que deberia tener todos los logs realizados el dia de ayer, pero unicamente tiene unos cuantos logs realizados hoy. Una autentica putada.

¿Que me recomendais que haga/mire/cambie?

Un saludo y gracias.