That is a really good question addressing a concern that should be shared
by every single Java library developer out there, Usha. We sadly don't have
an official answer to this – we should and maybe who knows, you can
contribute that to the Log4j manual! But let me share my take on the matter.

Libraries should only depend on logging APIs (SLF4J, Log4j, JUL, JCL, JPL,
etc.) and only provide an implementation (Log4j, Logback, etc.) for their
tests. Let me try to get it as concrete as possible by sharing what you
need to have in your `pom.xml`:

<dependencyManagement>
  <dependencies>

    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-bom</artifactId>
      <version>${log4j2.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>

  <dependencies>
<dependencyManagement>

<dependencies>

  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
  </dependency>

  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <scope>test</scope>
  </dependency>

  <!-- If you have dependencies that use other logging APIs
        than Log4j (SLF4J, JUL, JCL, JPL, etc.), add their bridges
        here as `test` dependencies -->

</dependencies>

Next you add a minimal `log4j2.xml` to `src/test/resources` and you are
done.

It is the responsibility of the application which will be glueing all these
libraries together to decide on where to and how to bind all these logging
APIs. As a matter of fact, many modern application frameworks provide
goodies to save you from that burden; consider `spring-boot-starter-log4j2`.

On Wed, Jan 25, 2023 at 12:01 AM Usha Nayak <usha...@gmail.com> wrote:

> Hello All,
>
> As a library owner, if I were to use the log4j2 API and the application
> that uses my library has a java.util.logging ( JUL ) framework.
>
> What adapter or routing jars will be needed at runtime by application such
> that all the logs, both from the library and the application, end up using
> the same logging framework implementation (JUL) ?
>
> Any help greatly appreciated
>
> Thanks
>

Reply via email to