I'm ok with adding log4j-core to the testRuntime for all unit test targets
to prevent the ERROR message. Any other input?

On Fri, Oct 18, 2019 at 3:10 PM John Blum <jb...@pivotal.io> wrote:

> Be careful to only add logging dependencies as testRuntime dependencies.
> Do not add any logger implementation/provider (e.g. log4j-core, or
> otherwise) in either the compile-time or runtime scope.
>
> This also means that when users are using and running Apache Geode
> applications (regardless of context), they will need to explicitly choose
> and declare a logging implementation, otherwise they will see the same
> ERROR message logged.  For example, when using Spring Boot, users
> would declare a runtime dependency on
> org.springframework.boot:spring-boot-starter-logging.  This uses Logback as
> the logging provider and adapts Log4j with SLF4J using the bridge.
>
> To make matters worse, unfortunately, this message is logged by the logging
> facade as an error when it should rather be logged as WARN instead, or
> arguably less.
>
> Technically, you should also be able to quiet down the "internal" Logging
> facade messaging using a no-op status listener, e.g. ...
>
>
> https://github.com/spring-projects/spring-boot-data-geode/blob/master/spring-geode-tests/smoke-tests/spring-initializer/src/test/resources/logback.xml#L4
>
> I not sure what that is for Log4j2 (but there should be an equivalent).
>
>
>
> On Fri, Oct 18, 2019 at 1:26 PM Bruce Schuchardt <bschucha...@pivotal.io>
> wrote:
>
> > Not long ago changes were made to the sub-projects that introduced a lot
> > of build noise.  In gradle builds we see a lot of this:
> >
> > ERROR StatusLogger Log4j2 could not find a logging implementation. Please
> > add log4j-core to the classpath. Using SimpleLogger to log to the
> console...
> >
> > and in IntelliJ unit test runs we get this:
> >
> > ERROR StatusLogger No Log4j 2 configuration file found. Using default
> > configuration (logging only errors to the console), or user
> > programmatically provided configurations. Set system property
> > 'log4j2.debug' to show Log4j 2 internal initialization logging.
> Seehttps://
> > logging.apache.org/log4j/2.x/manual/configuration.html  for instructions
> > on how to configure Log4j 2
> >
> > That's really annoying and it looks like Geode is broken.  To fix this
> > it was suggested that "we would have to add log4j-core to the classpath
> > of unit tests to get log4j-api to stop complaining".
> >
> > I think this should be done.  Any objections?
> >
> >
> >
>
> --
> -John
> john.blum10101 (skype)
>

Reply via email to