Hi,

I'm running log4j-1.2.15 and have a problem that I'd like to put forward to see 
if anyone has a solution.

I have an application that is very short lived but is run many times.  It's 
invoked by an external scheduling and orchestration application that can only 
run the application by constructing a fresh JVM via JNI every time it wants to 
run it.  The application logs using log4j and its RollingFileAppender with 
append=true.

The problem that I have encountered is that I have observed that sometimes the 
log files are getting partially wiped.  I am putting this down to the fact that 
the JVM might be shutting down whilst the rolling activity is taking place - 
resulting in partially rolled files.  I have tried adding a shutdown hook to 
invoke LogManager.shutdown() with the hope that this would block until the 
appenders had finished doing their work before the JVM shutdown but this 
doesn't appear to work.  I was able to replicate this by invoking the 
application many times continually. It doesn't happen often (maybe 1% with my 
setup) - I think the conditions have to be right, i.e. start rolling just 
before the app shuts down.

Has anyone got any ideas, solutions or workarounds?

Many thanks,

Dave



      

Reply via email to