[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