On Oct 5, 2006, at 7:45 AM, Leo Lima wrote:


Well, in recurrent scheduling servers that open a log file per schedule, that would be totally necessary. I, for example, must use something that has
append in it...


I was suggesting that there need not be an "append" attribute since the use case for the append=false behavior is insufficient. Are you saying it is essential that you have truncate behavior?




Headers and Footers are part of the layout, so you could not prevent the user from matching a MultiFileAppender with a layout with a header or
footer.  However, explicitly saying that you ignore them  would be an
option, at least at first.

Let's say they're ignored, then.

At least not use a thread to manage it by default.  Maybe an optional
parameter to specify a timer interval or an public method that an
interested user could add to a scheduler.

Fine by me. But I think the default should be a pool and the checks should
be done when creating a new file descriptor...

If there is a closeAfter (open for suggestions on name) attribute, that would need to be checked on each logging event. The idea is that if you had a FileNamePolicy that returned a file name based on the event time, that you could close the old day's log file 10 seconds into the new day and could tolerate a few out of sequence time stamps (which can occur due to synchronization effects).

I did not mean that this is a must. I thought it is up to the implementor of FileNameBuilder what she wants to do with the configured filename. That's why I suggested to pass also the calling appender as parameter to buildFileName().

5. I like the suggestion of Patrick that a user can force
the file closing
by a special log message at the end of a session.

I like the MDC 'close' message way. That could be done, yes.

If I get you right: You want to close the file dependent on the presence (or absence) of a certain MDC value? I think it's better to leave this also to the implementor of FileNameBuilder. If he wants to work with MDC, ok. But he is still free for using any other criterias as well.


I've mulled over having FileNamePolicy (calling it Policy instead of builder is more consistent with o.a.l.rolling.TriggeringPolicy and RollingPolicy) return some indication for file maintenance (like close other files, close this file immediately after write, etc), but it would either require two calls per event or an ugly signature (like passing a StringBuffer instead of returning a String). In the first iteration, I'm thinking it would be best to just start with FileNamePolicy.getFileName(LoggingEvent event) and see how much that can handle. I'm reluctant to add other parameters to the getFileName method without a really compelling reason.

I could see having a "dir" attribute on MultiFileAppender so that FileNamePolicy could return relative file paths. Maybe that would cover the use cases where you wanted to inspect the appender.


On Oct 5, 2006, at 10:02 AM, Leo Lima wrote:

I went ahead and did change KeyFileAppender to add 3 getter methods so I could extend it and make a KeyPoolFileAppender (no, I'm not creative...). I did check for the 'Append' attribute, overwritting only if the file hasn't been visited yet. And I provided a simple working sample (that I used to validate). I don't know what to do next; if I publish it on my website, on
bugzilla, or what?


I'm surprised that the mailing list didn't strip the attachments.

If it was your original code, you could have attached it to a bug report and noted that it was intended as a contribution to the ASF. Depending on the nature of the contribution, we may need to ask for a Contributor's License Agreement (http://www.apache.org/licenses/ icla.txt). Since you code is a modification of someone else's code, we'd likely need to have them contribute the original code to ASF and then accept your modifications of that contribution.

Since dealing with all that is likely messier than the alternative, what I'd suggest is let me get a sandbox project up and take a shot at the problem without looking at your code. Then if there are things in your code that you like better or use cases that we didn't cover, we can possibly incorporate contributions based on your work.

I hope to have it up on Monday at the Hackathon. As I'm spending a whole week in Austin doing things Apache, I'm pretty tied up at the moment getting all sorts of other stuff in a reasonable state.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to