Thanks So much for the clarification Piotr. Will look into the
ContextSelector section.

Thanks and regards
Arulkumar Ponnusamy


On Thu, Mar 24, 2022 at 2:21 PM Piotr P. Karwasz <piotr.karw...@gmail.com>
wrote:

> Hi Arulkumar,
>
> On Thu, 24 Mar 2022 at 07:30, Arulkumar Ponnusamy <parul....@gmail.com>
> wrote:
>
> > However, What i noticed is, the Configurator.setLevel() method's
> > Logger.getContext has a different reference id whereas the actual class's
> > LoggerFactory.getLogger(class) has a different context id. I guess,
> because
> > of this, the update does not send the notification properly so that the
> > actual change is not reflected. Attached the snapshot, the first image is
> > for the level setting using *Configurator.setlevel(*) and the second
> > image is the actual class where actual logs are printed.
> > what i noticed is, when the
> >
>
> Images are not accepted in the mailing list, please provide any code as
> text.
>
> The problem you are observing is due to the caller sensitivity of various
> Log4j2 functions, which have an implicit `LoggerContext` parameter. The
> change in behavior you observe is due to the fix of LOG4J-3330[1]. The fix
> itself is correct, as far as I can tell, but it modifies your program's
> behavior: `Configurator#setLevel` updates the `LoggerContext` associated
> with the classloader of the caller.
>
> I don't know the specifics of how WildFly manages classloaders, but IIRC
> there can be multiple classloaders per application. You should consider
> swapping the default `ClassLoaderContextSelector` (see
> https://logging.apache.org/log4j/2.x/manual/extending.html#ContextSelector
> )
> with something better suited for full Java EE application servers. I
> believe the `JndiContextSelector` might be the right choice.
>
> Piotr
>
> [1] https://issues.apache.org/jira/browse/LOG4J2-3330
>

Reply via email to