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