[logback-dev] Potential contribution - FallbackAppender
Durchholz, Joachim
Joachim.Durchholz at hennig-fahrzeugteile.de
Tue Oct 8 15:24:05 CEST 2013
I've been logging to a database, and sometimes the database connection would drop and I'd send mails instead.
The code grew into a bit of a mess over time, and I just decided to clean that up; one of the components that fell out is the FallbackAppender: configured with a list of appenders, and if one fails, shut it down and use the next one on the list.
Would such a contribution be welcome?
Here's the Javadoc, find an outline of the implementation below that.
--
An appender that delegates to one of a list of configured appenders.
If an appender fails, it will never be used again and the next appender in the list is used.
Typical Usage:
<appender name="APPENDER1" class="...">
...
</appender>
<appender name="APPENDER2" class="...">
...
</appender>
<appender name="APPENDER3" class="...">
...
</appender>
<appender name="SOME_APPENDER" class="de.hennig_fahrzeugteile.lib.logging.FallbackAppender">
<appenders>APPENDER1,APPENDER2,APPENDER3</appenders>
</appender>
If all appenders fail, stderr is used as an appender of last resort.
If you need specific formatting or encoding on the appender, finish the list off with a stderr appender to your liking.
This appender does not use any formatters or encoders.
--
The code isn't ready yet, what I have looks up all appenders in the context, puts them into a list, and iterates over the list as appenders fail.
It also reports any problems via addInfo() and addWarn(); I hope that that's enough to play nice with logback's normal mode of operation.
Currently it's 136 LoC, including boilerplate.
More information about the logback-dev
mailing list