[logback-user] How to send one event to more than one appender using the SiftingAppender?

David Roussel nabble at diroussel.xsmail.com
Fri Apr 19 19:29:30 CEST 2013


Yes, that sounds like a better approach than what I was suggesting. 

Can you create a jira ticket on making SiftingAppender more subclass friendly? 

Can you make the changes you need to make SiftingAppendrBase more subclass friendly and put them in a pull request. I can have a look.  And hopefully, Ceki willing, we can get the changes merged in. 

David

On 19 Apr 2013, at 16:40, "Konstantinidis, Johannes" <johannes.konstantinidis at capgemini.com> wrote:

> Hi David,
> 
> thanks for the answer.
> 
> I thought about subclassing the Sifting Appender because the SiftingAppender and its configuration offer nearly everything I need. If I add a new appender, it would at least need the name of the SiftingAppender. So I would need an Action and a description how to configure, while the SiftingAppender configuration is standard and has been described already.
> 
> In addition, as mentioned before in another conversation on this list, the SiftingAppender creates a sub appender only if there is at least one message for the sub appender. So wouldn't I run into the same problem to just send a dummy message to create the appender. Otherwise the valueList would not contain the appender, would it?
> 
> Btw, I have a working "subclass" of SiftingAppender that does the job. Because of the package-private code in SiftingAppenderBase it is more like a copy than a subclass :-) It would be helpful to split the SiftingAppenderBase's append(..) method into two parts:
> - get discriminating value
> - get appender and doAppend
> So a subclass can use the first method to get the discriminating value and manipulate it and the second method to append to one or more appenders.
> 
> Regards,
> Johannes
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: Logback-user [mailto:logback-user-bounces at qos.ch] Im Auftrag von diroussel
> Gesendet: Freitag, 19. April 2013 15:10
> An: logback-user at qos.ch
> Betreff: Re: [logback-user] How to send one event to more than one appender using the SiftingAppender?
> 
> Johannes,
> 
> I can't see how that would work at the moment.
> 
> SiftingAppender keeps it's child appenders, and when a log events comes in
> it will only log to one of them.
> 
> I suppose, if you can write a custom appender that gets a reference to the
> SiftingAppender, then you can do this:
> 
> class FanOutAppender implements Appender {
>  SiftingAppender sift;
>  void doAppend(E event) {
>    // Fan out log event to all child appenders of sift
>    for (Appender a : sift.getAppenderTracker().valueList()) {
>     a.doAppend(event);
>    )
>  }
> }
> 
> And that will log to all appenders.  The trick is using filters so your log
> event goes to either the sifting appender or your custom FanOutAppender
> 
> David
> 
> 
> 
> --
> View this message in context: http://logback.10977.n7.nabble.com/How-to-send-one-event-to-more-than-one-appender-using-the-SiftingAppender-tp12011p12029.html
> Sent from the Users mailing list archive at Nabble.com.
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/logback-user
> 
> ________________________________
> 
> Firma: Capgemini Deutschland GmbH
> Geschäftsführer: Dr. Michael Schulte (Sprecher) • Dr. Uwe Dumslaff • Josef Ranner
> Aufsichtsratsvorsitzender: Antonio Schnieder
> Amtsgericht Berlin-Charlottenburg, HRB 98814
> This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/logback-user


More information about the Logback-user mailing list