You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "mihalyr (via GitHub)" <gi...@apache.org> on 2024/08/12 21:07:21 UTC
[I] Several ClassNotFoundException warnings after upgrading to 2.23.x (logging-log4j2)
mihalyr opened a new issue, #2835:
URL: https://github.com/apache/logging-log4j2/issues/2835
## Description
Updating log4j from 2.22.1 to 2.23.0 or 2.23.1 causes a long list of warnings with exception traces for ClassNotFound exceptions for various class files.
## Configuration
**Version:** 2.23.1 (latest)
**Operating system:** Linux 6.9.12-200.fc40.x86_64 (Fedora 40)
**JDK:** OpenJDK Runtime Environment Corretto-21.0.4.7.1 (build 21.0.4+7-LTS)
## Logs
<details>
```
2024-08-12T20:55:04.848574234Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/AbstractAsyncExceptionHandler.class java.lang.NoClassDefFoundError: com/lmax/disruptor/ExceptionHandler
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at org.apache.logging.log4j.core.config.plugins.util.ResolverUtil.addIfMatching(ResolverUtil.java:462)
at org.apache.logging.log4j.core.config.plugins.util.ResolverUtil.loadImplementationsInJar(ResolverUtil.java:357)
at org.apache.logging.log4j.core.config.plugins.util.ResolverUtil.findInPackage(ResolverUtil.java:236)
at org.apache.logging.log4j.core.config.plugins.util.PluginRegistry.loadFromPackage(PluginRegistry.java:224)
at org.apache.logging.log4j.core.config.plugins.util.PluginManager.collectPlugins(PluginManager.java:162)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:242)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:313)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:631)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:713)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:735)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:260)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:154)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:46)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:197)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:611)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:597)
at LoggingTest.test(LoggingTest.java:4)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:728)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:218)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:214)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:139)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:124)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:99)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:94)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:63)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92)
at jdk.proxy1/jdk.proxy1.$Proxy4.stop(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:198)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:130)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:101)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:61)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.lang.ClassNotFoundException: com.lmax.disruptor.ExceptionHandler
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 106 more
```
I could not paste in the full log due to GitHub issue description restrictions, but this same exception trace continues for 36 other classes:
```
2024-08-12T20:55:04.848574234Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/AbstractAsyncExceptionHandler.class java.lang.NoClassDefFoundError: com/lmax/disruptor/ExceptionHandler
2024-08-12T20:55:04.863010652Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/AsyncLogger.class java.lang.NoClassDefFoundError: com/lmax/disruptor/EventTranslatorVararg
2024-08-12T20:55:04.876041935Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/AsyncLoggerConfigDefaultExceptionHandler.class java.lang.NoClassDefFoundError: com/lmax/disruptor/ExceptionHandler
2024-08-12T20:55:04.888450291Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor$Log4jEventWrapperHandler.class java.lang.NoClassDefFoundError: com/lmax/disruptor/EventHandler
2024-08-12T20:55:04.897193640Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor$Log4jEventWrapperHandler3.class java.lang.NoClassDefFoundError: com/lmax/disruptor/SequenceReportingEventHandler
2024-08-12T20:55:04.905696861Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/AsyncLoggerDefaultExceptionHandler.class java.lang.NoClassDefFoundError: com/lmax/disruptor/ExceptionHandler
2024-08-12T20:55:04.920293618Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/JCToolsBlockingQueueFactory$MpscBlockingQueue.class java.lang.NoClassDefFoundError: org/jctools/queues/MpscArrayQueue
2024-08-12T20:55:04.927522991Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/RingBufferLogEvent$Factory.class java.lang.NoClassDefFoundError: com/lmax/disruptor/EventFactory
2024-08-12T20:55:04.934415933Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/RingBufferLogEventHandler.class java.lang.NoClassDefFoundError: com/lmax/disruptor/SequenceReportingEventHandler
2024-08-12T20:55:04.940426224Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/RingBufferLogEventHandler4.class java.lang.NoClassDefFoundError: com/lmax/disruptor/EventHandler
2024-08-12T20:55:04.945727999Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.class java.lang.NoClassDefFoundError: com/lmax/disruptor/EventTranslator
2024-08-12T20:55:04.950998911Z Test worker WARN Could not examine class org/apache/logging/log4j/core/async/TimeoutBlockingWaitStrategy.class java.lang.NoClassDefFoundError: com/lmax/disruptor/WaitStrategy
2024-08-12T20:55:05.019943924Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/ContextDataAsEntryListDeserializer$1.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/type/TypeReference
2024-08-12T20:55:05.024074847Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/ContextDataAsEntryListDeserializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/deser/std/StdDeserializer
2024-08-12T20:55:05.027251789Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/ContextDataAsEntryListSerializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/std/StdSerializer
2024-08-12T20:55:05.030348787Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/ContextDataDeserializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/deser/std/StdDeserializer
2024-08-12T20:55:05.033280449Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/ContextDataSerializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/std/StdSerializer
2024-08-12T20:55:05.038999610Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/ListOfMapEntryDeserializer$1.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/type/TypeReference
2024-08-12T20:55:05.041876744Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/ListOfMapEntryDeserializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/deser/std/StdDeserializer
2024-08-12T20:55:05.044439136Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/ListOfMapEntrySerializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/std/StdSerializer
2024-08-12T20:55:05.046922512Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/Log4jJsonModule.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/module/SimpleModule
2024-08-12T20:55:05.049423181Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/Log4jJsonObjectMapper.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
2024-08-12T20:55:05.052247462Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/Log4jStackTraceElementDeserializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/deser/std/StdScalarDeserializer
2024-08-12T20:55:05.055034067Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/Log4jXmlModule.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/dataformat/xml/JacksonXmlModule
2024-08-12T20:55:05.057853644Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/Log4jXmlObjectMapper.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/dataformat/xml/XmlMapper
2024-08-12T20:55:05.060703167Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/Log4jYamlModule.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/module/SimpleModule
2024-08-12T20:55:05.063480087Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/Log4jYamlObjectMapper.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/dataformat/yaml/YAMLMapper
2024-08-12T20:55:05.069304136Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/MessageSerializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/std/StdScalarSerializer
2024-08-12T20:55:05.072218547Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/MutableThreadContextStackDeserializer$1.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/type/TypeReference
2024-08-12T20:55:05.075429779Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/MutableThreadContextStackDeserializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/deser/std/StdDeserializer
2024-08-12T20:55:05.078320940Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/ObjectMessageSerializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/std/StdScalarSerializer
2024-08-12T20:55:05.080930354Z Test worker WARN Could not examine class org/apache/logging/log4j/core/jackson/SimpleMessageDeserializer.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/deser/std/StdScalarDeserializer
2024-08-12T20:55:05.097624264Z Test worker WARN Could not examine class org/apache/logging/log4j/core/layout/JacksonFactory$Log4jXmlPrettyPrinter.class java.lang.NoClassDefFoundError: com/fasterxml/jackson/dataformat/xml/util/DefaultXmlPrettyPrinter
2024-08-12T20:55:05.118612683Z Test worker WARN Could not examine class org/apache/logging/log4j/core/net/SmtpManager$SMTPManagerFactory$1.class java.lang.NoClassDefFoundError: javax/mail/Authenticator
2024-08-12T20:55:05.129174092Z Test worker WARN Could not examine class org/apache/logging/log4j/core/osgi/Activator.class java.lang.NoClassDefFoundError: org/osgi/framework/SynchronousBundleListener
2024-08-12T20:55:05.197387855Z Test worker WARN Could not examine class org/apache/logging/log4j/util/Activator.class java.lang.NoClassDefFoundError: org/osgi/framework/BundleActivator
2024-08-12T20:55:05.203295573Z Test worker WARN Could not examine class org/apache/logging/log4j/util/ProviderActivator.class java.lang.NoClassDefFoundError: org/osgi/framework/BundleActivator
```
</details>
## Reproduction
I have a very small reproducer for this
`build.gradle`
```groovy
plugins {
id 'java'
}
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.apache.logging.log4j:log4j-core:2.23.1'
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.10.3'
}
test {
useJUnitPlatform()
}
```
`log4j2-test.properties`
```properties
status = info
packages = org.apache.logging.log4j
appender.console.type = Console
appender.console.name = console
rootLogger = info, console
```
`LoggingTest.java`
```java
public class LoggingTest {
@org.junit.jupiter.api.Test
void test() {
org.apache.logging.log4j.LogManager.getLogger();
}
}
```
I have noticed the following:
1. If I downgrade to 2.22.1 the problem goes away
2. If I remove `packages` from the log4j2-test.properties file the problem also goes away
However, there is a reason, why I still use `packages` for some plugins, various annotation processors configured used to cause issues and I was never able to make log4j plugin discovery work without the `packages` configuration. But that is a separate issue, `packages` is still supported in `2.23.x`, so this should still work the same way it did on `2.22.x`, IMO. As a workaround, I can just downgrade to 2.22.1 for now.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@logging.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Several ClassNotFoundException warnings after upgrading to 2.23.x (logging-log4j2)
Posted by "ppkarwasz (via GitHub)" <gi...@apache.org>.
ppkarwasz commented on issue #2835:
URL: https://github.com/apache/logging-log4j2/issues/2835#issuecomment-2285449076
@mihalyr,
The warning statements you are seeing were always present in the Log4j codebase, but were only visible if the `verbose` attribute of the configuration was set to `true`. The `verbose` attribute was deprecated in version `2.23.0`.
Since many Log4j plugins require additional dependencies, we should probably add a special clause to handle a `LinkageError` in:
https://github.com/apache/logging-log4j2/blob/e2d1a9527613b82b495b4036a152294d85c11a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java#L476-L478
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@logging.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Several ClassNotFoundException warnings after upgrading to 2.23.x (logging-log4j2)
Posted by "ppkarwasz (via GitHub)" <gi...@apache.org>.
ppkarwasz commented on issue #2835:
URL: https://github.com/apache/logging-log4j2/issues/2835#issuecomment-2285868791
> > Since many Log4j plugins require additional dependencies, we should probably add a special clause to handle a `LinkageError` in: ...
>
> @ppkarwasz, I doubt if a whitelist of exceptions will cut it. Why don't we rather change the logged status message severity to `DEBUG` instead. `addIfMatching()` receives a `Test`, and for a class that is failing to load, it surely cannot pass. Hence ignoring such `addIfMatching()` invocations sounds sensible to me.
That is what I meant. Linkage errors (`NoClassDefFound`) mean that an optional dependency is missing. I would keep catching other types of exceptions (like the unlikely `ClassNotFoundException`):
https://github.com/apache/logging-log4j2/blob/b941a990935c4db0c77849904c45d8dfd62b00ca/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java#L472-L476
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@logging.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Several ClassNotFoundException warnings after upgrading to 2.23.x (logging-log4j2)
Posted by "ppkarwasz (via GitHub)" <gi...@apache.org>.
ppkarwasz closed issue #2835: Several ClassNotFoundException warnings after upgrading to 2.23.x
URL: https://github.com/apache/logging-log4j2/issues/2835
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@logging.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Several ClassNotFoundException warnings after upgrading to 2.23.x (logging-log4j2)
Posted by "mihalyr (via GitHub)" <gi...@apache.org>.
mihalyr commented on issue #2835:
URL: https://github.com/apache/logging-log4j2/issues/2835#issuecomment-2285679815
Thank you for the clarification, I was not aware of this, probably did not use verbose mode before.
It seems this does not affect functionality, but adds several thousand lines of traces to every application boot at WARN level which makes following the application startup much harder. And this is also present in test output where loggers are loaded.
If these are useful messages for some for troubleshooting, maybe we could make it DEBUG or lower so they are hidden at least on `status = info` level?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@logging.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Several ClassNotFoundException warnings after upgrading to 2.23.x (logging-log4j2)
Posted by "vy (via GitHub)" <gi...@apache.org>.
vy commented on issue #2835:
URL: https://github.com/apache/logging-log4j2/issues/2835#issuecomment-2285787256
> It seems this does not affect functionality, but adds several thousand lines of traces to every application boot at WARN level which makes following the application startup much harder. And this is also present in test output where loggers are loaded.
@mihalyr, thanks so much for the report. I will try to make sure this is resolved in the next major release, i.e., `2.24.0`. The current behaviour is indeed undesired.
> If these are useful messages for some for troubleshooting, maybe we could make it DEBUG or lower so they are hidden at least on `status = info` level?
That can indeed be a resolution. Regardless of that, I'd advise you to
1. Avoid using `status` property in the Log4j configuration files (see [the soon-to-be-released documentation for details](https://logging.staged.apache.org/log4j/2.x/manual/status-logger.html#config))
2. Instead pass the `log4j2.statusLoggerLevel` system/JVM property
3. Use level `WARN` (Status Logger is intended for troubleshooting Log4j internals. There is no need to display its logs unless you're having a problem, in which case, will be communicated with messages of severity `WARN` or higher.)
> I did not notice the name of the plugins causing the exceptions either. I was wondering if there was a way to disable the offending ones or just be more explicit about which ones to load?
This is a complicated issue. In short, there are several `optional` dependencies and you only get to know them while trying to load them. :shrug:
> Since many Log4j plugins require additional dependencies, we should probably add a special clause to handle a `LinkageError` in: ...
@ppkarwasz, I doubt if a whitelist of exceptions will cut it. Why don't we rather change the logged status message severity to `DEBUG` instead. `addIfMatching()` receives a `Test`, and for a class that is failing to load, it surely cannot pass. Hence ignoring such `addIfMatching()` invocations sounds sensible to me.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@logging.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org