What about just picking the first one like in the example below (note the
new error message)

Gary

On Sep 28, 2012, at 14:06, Ralph Goers <ralph.go...@dslextreme.com> wrote:

That is interesting.  So Eclipse is seeing both the API's test factory and
the real implementation.  I guess that makes sense.  I would probably have
the same problem in IntelliJ except that I never run tests for anything in
my IDE but always run Maven from the command line - even to debug.

At one point I considered allowing multiple implementations, but passing
events to two logging implementations seems like a performance nightmare.
 Also, the Log4j 2 API isn't really intended as a competitor or replacement
for SLF4J.

I think a better way to do this is to add one more piece of information to
the meta-data - a rank/weight as is being done with the configuration
factory. Then we will pick the one with the highest rank.

Ralph

On Sep 28, 2012, at 10:51 AM, Gary Gregory wrote:

Hi All,

I am using Eclipse as my IDE and when I run
org.apache.logging.log4j.core.BasicLoggingTest I get an NPE because
org.apache.logging.log4j.LogManager.factory is null. It is null because
when the static initializer runs it picks up 2 factories instead of one:

[org.apache.logging.log4j.core.impl.Log4jContextFactory@39c8c1,
org.apache.logging.log4j.SimpleLoggerContextFactory@1ab2b55].

Can we be more lenient?

Instead of:

            if (factories.size() != 1) {
                logger.fatal("Unable to locate a logging implementation");
            } else {
                factory = factories.get(0);
            }

How about:

            if (factories.size() != 1) {
                logger.error("Expected a single logging implementation, not
{}, picking the first: {}", factories.size(), factories.get(0));
            }
            factory = factories.get(0);

?

-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
JUnit in Action, 2nd Ed: <http://goog_1249600977/>http://bit.ly/ECvg0
Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to