On Mon, Mar 11, 2024 at 11:33 PM Grzegorz Grzybek <[email protected]>
wrote:

> Hello
>
> Pax Logging (where pax-logging-api contains and exports Logging APIs,
> while pax-logging-log4j2 is the Log4j2-based implementation) has enormous
> amount of effort put into integration of very different logging packages
> and it is used by Apache Karaf among others.
>
> The team developed Pax Logging for many years trying to maintain old APIs
> and include new ones. Among others, there's one consequence of this -
> either you use Pax Logging and accept some (workarounds possible)
> limitation or you craft your own set of bundles approaching what Pax
> Logging does anyway.
>
> Your issue is simple - your "caterwaul-connect-core" bundle imports
> "org.apache.logging.log4j.core" which is simply NOT exported by
> pax-logging-log4j2. This (at first glance) means you NEED actual Log4j2
> bundles installed.
>
> However - are you sure your "caterwaul-connect-core" bundle really needs
> this package? is it implementing custom appenders/layouts/plugins? If so,
> it's better (and Pax Logging contains relevant examples) to create a
> fragment bundle attached to pax-logging-log4j2 bundle.
>
> Hi, thanks for getting back.

Yes, it seems that the code is doing a couple of things. One is creating
its own appender, and another it seems to be looking at different kinds of
events that contain raw logging information, so it's using some of the
classes to extract information from those.

So, for this fragment, do I simply need to make a fragment containing the
extra log4j information, or do I need to extract the code that is using
those log4j pieces and put that into a fragment. That seems to be a much
taller order. Compared to bolting the necessary log4j.core classes onto the
pax bundle so that those classes are then available to everyone from the
pax bundles classloader.

Thanks!

Regards,

Will Hartung

Reply via email to