[ 
https://issues.apache.org/jira/browse/LOG4J2-2956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17532505#comment-17532505
 ] 

ASF subversion and git services commented on LOG4J2-2956:
---------------------------------------------------------

Commit 3ae669455565276e962b34ce5fdf7fd3dc7da3c2 in logging-log4j2's branch 
refs/heads/master from Ralph Goers
[ https://gitbox.apache.org/repos/asf?p=logging-log4j2.git;h=3ae6694555 ]

LOG4J2-2956 - Prevent ContextDataFactory error during startup


> Using log4j-spring-cloud-config-client and DynamicThresholdFilter cause Could 
> not initialize class 
> org.apache.logging.log4j.core.impl.ContextDataFactoryException
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-2956
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2956
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Spring
>    Affects Versions: 2.13.3
>            Reporter: Rafał Figas
>            Priority: Major
>             Fix For: 2.18.0
>
>
> Assumptions:
>  # Application is a Spring Boot app.
>  # {{It is configured to use spring-boot-starter-log4j2}}
> {{There is a log4j2.cfg.xml provided through logging.config property and it 
> is working fine. It contains following part:}}
>  
> {noformat}
> <DynamicThresholdFilter key="X-Log-Level" onMatch="ACCEPT" 
> onMismatch="NEUTRAL">   
>  <DefaultThreshold>INFO</DefaultThreshold>
>  <KeyValuePair key="DEBUG" value="DEBUG" />
>  <KeyValuePair key="TRACE" value="TRACE" />
> </DynamicThresholdFilter>{noformat}
> {{However when dependency log4j-spring-cloud-config-client is added 
> application does not start with following exception:}}
> {noformat}
> Exception in thread "main" java.lang.NoClassDefFoundError: Could not 
> initialize class 
> org.apache.logging.log4j.core.impl.ContextDataFactoryException in thread 
> "main" java.lang.NoClassDefFoundError: Could not initialize class 
> org.apache.logging.log4j.core.impl.ContextDataFactory 
> at 
> org.apache.logging.log4j.core.impl.ThreadContextDataInjector$ForDefaultThreadContextMap.rawContextData(ThreadContextDataInjector.java:137)
>  
> at 
> org.apache.logging.log4j.core.filter.DynamicThresholdFilter.currentContextData(DynamicThresholdFilter.java:162)
>  
> at 
> org.apache.logging.log4j.core.filter.DynamicThresholdFilter.filter(DynamicThresholdFilter.java:152)
>  at 
> org.apache.logging.log4j.core.Logger$PrivateConfig.filter(Logger.java:609) 
> at org.apache.logging.log4j.core.Logger.isEnabled(Logger.java:258) at 
> org.apache.logging.log4j.spi.AbstractLogger.isEnabled(AbstractLogger.java:1513)
>  
> at 
> org.apache.commons.logging.LogAdapter$Log4jLog.isErrorEnabled(LogAdapter.java:175)
>  at 
> org.springframework.boot.SpringApplication.reportFailure(SpringApplication.java:836)
>  
> at 
> org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:812)
>  at 
> org.springframework.boot.SpringApplication.run(SpringApplication.java:325) 
> at 
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) 
> at 
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) 
> at 
> pl.frati.moray.configserver.ConfigServerApplication.main(ConfigServerApplication.java:12)
> {noformat}
> First of all I have no idea what is missing. Without mentioned dependency 
> application startup is correct. Also, removing DynamicThresholdFilter solves 
> the problem as well.
> Second of all it seems that exception message is somewhat broken, because it 
> does not say anything about what class is missing. I've tried to debug this, 
> but class ContextDataFactory is pretty hard to debug. Fix in exception 
> message should ease the hunt.
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to