[
https://issues.apache.org/jira/browse/LOG4J2-862?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Sutherland reopened LOG4J2-862:
---------------------------------------
I've tried building from trunk and I'd say this is still a problem. I think
it's due to ProviderUtil.findClassLoader going directly to
LoaderUtil.getThreadContextClassLoader(). It means all the code in LoaderUtil
that checks for the "IGNORE_TCCL_PROPERTY" is skipped and
Thread.currentThread().getContextClassLoader() is exectuted despite the system
properties.
If i replace the line {{if (cl != null){}} with {{if (cl != null &&
!"true".equals(System.getProperty(IGNORE_TCCL_PROPERTY))) {}} log4j works as
I'd expect but it doesn't fit the architecture of having PropertiesUtil
> Misleading error message "Log4j2 could not find a logging implementation.
> Please add log4j-core to the classpath."
> ------------------------------------------------------------------------------------------------------------------
>
> Key: LOG4J2-862
> URL: https://issues.apache.org/jira/browse/LOG4J2-862
> Project: Log4j 2
> Issue Type: Bug
> Components: Configurators
> Affects Versions: 2.0.2
> Reporter: Michael Sutherland
> Assignee: Matt Sicker
> Fix For: 2.1
>
>
> In the code out put I see
> "ERROR StatusLogger Log4j2 could not find a logging implementation. Please
> add log4j-core to the classpath. Using SimpleLogger to log to the console..."
> followed by "java.lang.ClassCastException:
> org.apache.logging.log4j.simple.SimpleLoggerContext cannot be cast to
> org.apache.logging.log4j.core.LoggerContext" which means core must be on the
> class path as otherwise you couldn't get that class cast execption. At which
> point the application using Log4j2 fails to start.
> The underlying problem is org.apache.logging.log4j.LogManager assuming if
> org.apache.logging.log4j.util.ProviderUtil returns false for hasProviders it
> is because core is not on the classpath. In practice I've found that
> hasProviders can return false because ProviderUtil is using a different
> Classloader than the rest of the application. It cannot find the
> "META-INF/log4j-provider.properties" resource but it is on the class path.
> I think there is a problem with the logic of how the classloaders are chosen
> but I don't understand what Log4j is trying to do here, however I am sure the
> error message is confusing and misleading
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]