[ 
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)

Reply via email to