Skip to content

Log4j2 metadata issues when ThresholdFilter is being used with GraalVM #3871

@anuragagarwal561994

Description

@anuragagarwal561994

Description

Not able to find ThresholdFilter class when used with GraalVM

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
    <Appenders>
        <!-- start: appenders for logging error logs !-->
        <Console name="stderr" target="SYSTEM_ERR">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} %notEmpty{%x }%notEmpty{%X }- %msg%n"/>
            <Filters>
                <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
        </Console>
        <!-- end: appenders for logging error logs !-->

        <!-- start: appenders for logging debug, info, warn logs !-->
        <Console name="stdout" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} %notEmpty{%x }%notEmpty{%X }- %msg%n"/>
            <Filters>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
        </Console>
        <!-- end: appenders for logging debug, info, warn logs !-->
    </Appenders>
    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="stdout"/>
            <AppenderRef ref="stderr"/>
        </Root>
        <Logger name="net.media.rtb" level="ERROR"/>
    </Loggers>
</Configuration>

Configuration

Version: 2.25.1

Operating system: Mac OS X

JDK: 21-graal

Logs

2025-08-06T16:24:37.135353Z main ERROR Unable to invoke factory method in class org.apache.logging.log4j.core.filter.ThresholdFilter for element ThresholdFilter: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.filter.ThresholdFilter
java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.filter.ThresholdFilter
	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:268)
	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:140)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1206)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1125)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1117)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1117)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1117)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:715)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:271)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:324)
	at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:697)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:786)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:808)
	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:311)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:160)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:48)
	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:139)
	at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:138)
	at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:58)
	at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
	at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:32)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)
	at net.media.rtb.Commands.<clinit>(Commands.java:28)
	at [email protected]/java.lang.invoke.DirectMethodHandle.ensureInitialized(DirectMethodHandle.java:288)
	at [email protected]/java.lang.invoke.DirectMethodHandle.internalMemberNameEnsureInit(DirectMethodHandle.java:336)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

To triage

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions