I made a couple of changes to the TimeBasedRollingPolicy and I was wondering if 
I could get them added upstream? I have never done this before so I have no 
idea how this process should work. Any guidance?

They allow it to handle rolling log files with multiple clients writing to the 
file. It is not perfect, there is still at least one way it can break but it 
works most of the time without a hitch and that one way happened every time 
before. first writer renames file, second renames file again overwrites first 
renamed file. I fixed that by putting a check for File.exists() in 
FileRenameAction. Execute now returns false when the target file already 
exists. obviously that exists, rename bit needs to be made atomic for this to 
be perfect but this is a good start. 

I also added an append variable to TimeBasedRollingPolicy to save the state of 
append from the initialize call so that when rollover returns the rollover 
description it can return the correct value for append since with multiple 
writers writing to the file it is necessary not to loose the append setting. 

I also added a check for file modification time in initialize and set 
lastFileName based on that modification time so that it could rollover files 
that are from yesterday. I wanted rollover to work even if nothing is running 
when the rollover was supposed to happen. 

I would like to avoid maintaining a separate branch so how do I get this put in?

Reply via email to