[logback-user] Custom appender is being ignored
Zac Harvey
bitbythecron at gmail.com
Tue Jul 26 14:21:43 CEST 2022
Thanks again! If you don't mind, one *final* follow-up question regarding
stop():
Do I need to wire my CatAppender#stop() calls up to any lifecycle
hooks/calls called by logback/SLF4J itself, or is the idea that the
*application* can stop an appender programmatically if the application
desires to stop using it (stop logging) at any point?
In my case, I can't think of a reason to expose the AppenderBase#stop()
from the outside world (application) and allow the app to stop
logging/appending. But should I override an AppenderBase method anyways,
and call stop() from inside of it, and logback/SLF4J will call that
overridden method at shutdown? Or is it safe in my case to just *not* call
stop() at all, from anywhere inside the CatAppender?
Thanks again so much!
On Tue, Jul 26, 2022 at 5:37 AM Ceki Gülcü <ceki at qos.ch> wrote:
>
> The start() method is akin to a constructor check.
>
> The start method should check whether all required parameters have been
> passed during configuration. If required parameters are missing, the
> appender should refuse to start and warn the user.
>
> The stop() method should release resources if any.
>
> --
> Ceki Gülcü
>
> Sponsoring SLF4J/logback/reload4j at https://github.com/sponsors/qos-ch
>
>
> On 7/25/2022 8:27 PM, Zac Harvey wrote:
> > Thank you Ceki! I called start() in the CatAppender constructor and
> > everything is now working. Are there recommended practices as to when
> > (and from where) to call start() and stop()? Thanks again so much!
> >
> > Best,
> > Zac
> >
> > On Mon, Jul 25, 2022 at 2:14 PM Ceki Gülcü <ceki at qos.ch
> > <mailto:ceki at qos.ch>> wrote:
> >
> > Hello Zac,
> >
> > AppenderBase will not invoke the append() method less the appender
> has
> > the started flag set to true.
> >
> >
> > --
> > Ceki Gülcü
> >
> > Sponsoring SLF4J/logback/reload4j at
> > https://github.com/sponsors/qos-ch <
> https://github.com/sponsors/qos-ch>
> >
> > On 7/25/2022 6:38 PM, Zac Harvey wrote:
> > > Java 11 and logback-classic-1.2.11 here. I'm trying to write my own
> > > custom appender and am following this Baeldung article
> > > <https://www.baeldung.com/custom-logback-appender
> > <https://www.baeldung.com/custom-logback-appender>> to test it out.
> > >
> > > My *src/main/java/myapp/logging/CatAppender* appender (on the
> runtime
> > > classpath):
> > >
> > > public class CatAppender extends AppenderBase<ILoggingEvent> {
> > > @Override
> > > protected void append(ILoggingEvent eventObject) {
> > > System.out.println("meow");
> > > }
> > > }
> > >
> > > My *src/main/resources/logback.xml*:
> > >
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <configuration debug="true">
> > >
> > > <appender name="cat" class="myapp.logging.CatAppender"/>
> > >
> > > <root level="info">
> > > <appender-ref ref="cat" />
> > > </root>
> > >
> > > </configuration>
> > >
> > > In my *build.gradle* I specify to use logback and Lombok:
> > >
> > > plugins {
> > > id "io.freefair.lombok" version '6.4.0'
> > > }
> > >
> > > dependencies {
> > > implementation (
> > > 'ch.qos.logback:logback-classic:1.2.11'
> > > ,'org.projectlombok:lombok:1.18.16'
> > > )
> > > }
> > >
> > > And then in my Java code I use Lombok to inject an SLF4J logger
> > like so:
> > >
> > > @Slf4j
> > > public class SomethingDoer {
> > >
> > > public void doSomething() {
> > > log.info <http://log.info> <http://log.info
> > <http://log.info>>("this should invoke the CatAppender...");
> > > }
> > >
> > > }
> > >
> > > But when *SomethingDoer#doSomething()* runs, I don't see a meow
> > printed
> > > to my STDOUT console. Have I wired anything up incorrectly here?
> > >
> > _______________________________________________
> > logback-user mailing list
> > logback-user at qos.ch <mailto:logback-user at qos.ch>
> > http://mailman.qos.ch/mailman/listinfo/logback-user
> > <http://mailman.qos.ch/mailman/listinfo/logback-user>
> >
> >
> > _______________________________________________
> > logback-user mailing list
> > logback-user at qos.ch
> > http://mailman.qos.ch/mailman/listinfo/logback-user
>
> --
> Ceki Gülcü
>
> Sponsoring SLF4J/logback/reload4j at https://github.com/sponsors/qos-ch
> _______________________________________________
> logback-user mailing list
> logback-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/logback-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-user/attachments/20220726/93bcc9e0/attachment.html>
More information about the logback-user
mailing list