<div dir="ltr">On 11 April 2013 15:53, diroussel <span dir="ltr"><<a href="mailto:nabble@diroussel.xsmail.com" target="_blank">nabble@diroussel.xsmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Stuart,<br>
<br>
I understand what you mean now.  It definately creates the dynamic appender<br>
on append.  I've been reading the source that does that,<br>
SiftingAppenderBase, today looking at another issue.<br>
<br>
I can see why it wouldn't make sense to ido it in MDC.put().  Maybe there is<br>
another way?<br>
<br>
I take if your encoder is dynamic, so can't be specified in logback.xml.<br>
<br>
 - Maybe you can do it with a logback.groovy file, I've heard that is more<br>
flexible.<br>
<br>
 - Maybe you could define many appenders, one for each encoder, and then use<br>
a filter to control which one the event goes to?<br>
<br>
 - Maybe you could use a variable name in the encoder class name, which is<br>
replaced by the sifter before the appender is created?  Annoyingly<br>
SiftingApender only works on one key at a time, so this might not work for<br>
you.<br>
<br>
David<br><div class="HOEnZb"><div class="h5"><br></div></div></blockquote><div style><br></div><div style>It would be less annoying if the addition occurred before active logging levels were checked, because then I could log a dummy TRACE level message to get things started. Unfortunately, I have to log something that actually gets logged, so have to use ERROR level to be safe. I don't think your last two possibilities will fly in my case, because my encoder has run-time 'things' in it (so it can't be instantiated via any kind of default constructor). Anyway, I have a simple-ish workaround, and may investigate more (incl. looking at the Logback source) when/if I have time.</div>
<div style><br></div><div style>Thanks,<br></div><div style>Stuart</div></div>
</div></div>