<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">If I'm not mistaken this is more or
less the same issue I was describing in the thread "Context
configuration during webapp loading".<br>
<br>
The problem is that the static initialization and default
configuration of logback is triggered by the first time something
uses slf4j to get a Logger factory
org.slf4j.impl.StaticLoggerBinder init method. At the very least,
you must trigger this initialization yourself by the code you must
use to get the LoggerContext to do customization in a second
*configuation*.<br>
<br>
It seems to me logback ought to offer a way to inject code into
this static initialization, so that you can customize this *first*
configuration. This would probably have to happen by a static
method on some logback class involved in the initialization, and
would require you to ensure your static code runs before any other
static code but this would at least be an improvement IMO.<br>
<br>
Eric<br>
<br>
On 9/4/2012 11:40 AM, Chris Pratt wrote:<br>
</div>
<blockquote
cite="mid:CAALdY0wX8d1PgWOrAMOc9CyUUmd4DQY1ERAdZWTxhyqKON_fYw@mail.gmail.com"
type="cite">I guess you could have your logback configuration file
just specify the log file name as "preconfig.log", then have your
code create a new appender with the right filename and replace the
current file appender. You'd end up with a very small
preconfig.log (which your code might even be able to rename to
your new name before pointing logback at it) and the rest of the
days logs would be in your newly configured file.
<div>
(*Chris*)<br>
<br>
<div class="gmail_quote">On Tue, Sep 4, 2012 at 6:30 AM, Brett
Walker <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:brett.walker@geometryit.com" target="_blank">brett.walker@geometryit.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Ceki,<br>
<br>
When I first discovered logback about two years ago I saw
this potential problem. I thought some sort of cyclic buffer
as used by logback's status listener was a possible
solution. The problem I saw was that filters, formatters and
encoders were not set. Thus the logging event had to be
stored in a 'raw' format (loggingEvent or something similar
was sufficient) to be replayed back in an orderly manner,
once the configuration of logback was complete. From memory,
it was the orderly replay that I was yet to fully solve and
the transition from a cyclic buffer to the effective logger
as described in the configuration file.<br>
<br>
I could see the scenario where application, upon startup,
had not yet fully finished establishing it's environment yet
third party libraries are emitting crucial log statements.<br>
<br>
Some sort of buffer is needed. In most case it should not be
needed.<br>
<br>
It raises another question; "How to configure this temporary
buffer?"<br>
<span class="HOEnZb"><font color="#888888"><br>
Brett Walker<br>
</font></span>
<div class="HOEnZb">
<div class="h5"><br>
On 04/09/2012, at 10:50 PM, "ceki" <<a
moz-do-not-send="true" href="mailto:ceki@qos.ch">ceki@qos.ch</a>>
wrote:<br>
<br>
> How much time are we talking about between logback
initialization and<br>
> the time where the value of the property is known?<br>
><br>
> On 04.09.2012 14:38, Thorbjørn Ravn Andersen wrote:<br>
>> We have done plain old “just log to a new file
for the duration of the<br>
>> program – delete old logs daily” for several
years now and found it<br>
>> works well for us.<br>
>><br>
>> Now I have a rather tricky situation where part
of the file name to be<br>
>> used by (a subclass of) FileAppender needs to
be supplied by my code,<br>
>> but the initialization phase of the application
contains log statements<br>
>> triggering the initialization of logback
_/before/_ the property<br>
>> referred to by the FileAppender name string is
set causing the log file<br>
>> to have an incorrect name.<br>
>><br>
>> Basically what I have found to be the behavior
I want is for logback to<br>
>> await opening the file and write data before I
say it can.<br>
>><br>
>> Question is how I can do this within the limits
of logback. Can I tell<br>
>> logback to just buffer events in memory (this
will only be for a few<br>
>> seconds, and memory will most likely not be an
issue) – some kind of<br>
>> valve? Can I tell FileAppender to write to a
temporary file and rename<br>
>> it whenever the name is ready (perhaps using
some of the Policies from<br>
>> RollingFileAppender)?<br>
>><br>
>> Any suggestions on how to handle this?<br>
>><br>
>> Note: As we restart our application daily we
do not need<br>
>> RollingFileAppender for our general logging –
instead we have subclassed<br>
>> FileAppender to remove “older than X days”
files from the target<br>
>> folder. This has proven to work very well for
our scenario.<br>
>><br>
>> Thanks<br>
>><br>
>> /Thorbjørn<br>
>><br>
>><br>
><br>
><br>
> --<br>
> Ceki<br>
> <a moz-do-not-send="true"
href="http://tinyurl.com/proLogback" target="_blank">http://tinyurl.com/proLogback</a><br>
> _______________________________________________<br>
> Logback-user mailing list<br>
> <a moz-do-not-send="true"
href="mailto:Logback-user@qos.ch">Logback-user@qos.ch</a><br>
> <a moz-do-not-send="true"
href="http://mailman.qos.ch/mailman/listinfo/logback-user"
target="_blank">http://mailman.qos.ch/mailman/listinfo/logback-user</a><br>
_______________________________________________<br>
Logback-user mailing list<br>
<a moz-do-not-send="true"
href="mailto:Logback-user@qos.ch">Logback-user@qos.ch</a><br>
<a moz-do-not-send="true"
href="http://mailman.qos.ch/mailman/listinfo/logback-user"
target="_blank">http://mailman.qos.ch/mailman/listinfo/logback-user</a></div>
</div>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Logback-user mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Logback-user@qos.ch">Logback-user@qos.ch</a>
<a class="moz-txt-link-freetext" href="http://mailman.qos.ch/mailman/listinfo/logback-user">http://mailman.qos.ch/mailman/listinfo/logback-user</a></pre>
</blockquote>
<br>
</body>
</html>