[ https://issues.apache.org/jira/browse/GEODE-7050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16902546#comment-16902546 ]
Kirk Lund commented on GEODE-7050: ---------------------------------- The environment that produced this failure stack seems to include logback, log4j-core, and log4j-to-slf4j. The latter will install `SLF4JProvider` for log4j. Geode's logging `ProviderAgentLoader.DefaultProvider` incorrectly assumes that log4j-core's `Log4jProvider` is installed because it can class load `org.apache.logging.log4j.core.Logger`. If `SLF4JProvider` is also present then log4j will prefer it over `Log4jProvider`. > Log4jAgent should avoid casting non-log4j loggers > ------------------------------------------------- > > Key: GEODE-7050 > URL: https://issues.apache.org/jira/browse/GEODE-7050 > Project: Geode > Issue Type: Bug > Components: logging > Affects Versions: 1.9.0, 1.10.0 > Reporter: Kirk Lund > Assignee: Kirk Lund > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > Users should be able to use SLF4J API with Geode even when log4j-core is in > the class path and the Geode log4j appenders are being used. > Log4jAgent assumes that all Loggers are Log4J loggers. This can result in a > ClassCastException when encountering an instance of SLF4JLogger. > {noformat} > Caused by: java.lang.ClassCastException: org.apache.logging.slf4j.SLF4JLogger > cannot be cast to org.apache.logging.log4j.core.Logger > at > org.apache.geode.internal.logging.log4j.Log4jAgent.getRootLoggerContext(Log4jAgent.java:91) > at > org.apache.geode.internal.logging.log4j.Log4jAgent.getConfiguration(Log4jAgent.java:95) > at > org.apache.geode.internal.logging.log4j.Log4jAgent.isUsingGemFireDefaultConfig(Log4jAgent.java:80) > at > org.apache.geode.internal.logging.log4j.Log4jAgent.shouldUpdateLogLevels(Log4jAgent.java:129) > at > org.apache.geode.internal.logging.log4j.Log4jAgent.configure(Log4jAgent.java:107) > at > org.apache.geode.internal.logging.Configuration.configChanged(Configuration.java:152) > at > org.apache.geode.internal.logging.Configuration.initialize(Configuration.java:141) > at > org.apache.geode.internal.logging.LoggingSession.createSession(LoggingSession.java:65) > at > org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:762) > at > org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:446) > at > org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:432) > at > org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:257) > at > org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:164) > at > org.apache.geode.cache.client.ClientCacheFactory.basicCreate(ClientCacheFactory.java:243) > at > org.apache.geode.cache.client.ClientCacheFactory.create(ClientCacheFactory.java:214) > at > org.springframework.data.gemfire.client.ClientCacheFactoryBean.createCache(ClientCacheFactoryBean.java:391) > at > org.springframework.data.gemfire.CacheFactoryBean.resolveCache(CacheFactoryBean.java:325) > at > org.springframework.data.gemfire.CacheFactoryBean.init(CacheFactoryBean.java:269) > ... 107 more > {noformat} -- This message was sent by Atlassian JIRA (v7.6.14#76016)