I'm trying to use the ExpressionFilter [1] from Log4j Extras to limit logging for a particular appender to those cases where MDC contains a "url" entry that equals some specific value.  But I get an error from Log4j saying "Invalid EQUALS rule - MDC.url is not a supported field" (see below for complete error output from Log4j).  I'm using the latest versions of Log4j-1.x and Log4j-extras.  Here's the relevant config...

<appender...>
    ....   
    <filter class="org.apache.log4j.filter.ExpressionFilter">
        <param name="Expression" value="MDC.url == 'http://somedomain/somepath'"/>
    </filter>
</appender>

Based on the documentation [2] and commit comment [3] I found, it seems like this should work.  What am I missing?


Here's the complete error output from Log4j...

log4j:ERROR Could not create an Appender. Reported error follows.
java.lang.IllegalArgumentException: Invalid EQUALS rule - MDC.url is not a supported field
        at org.apache.log4j.rule.EqualsRule.<init>(EqualsRule.java:62)
        at org.apache.log4j.rule.EqualsRule.getRule(EqualsRule.java:100)
        at org.apache.log4j.rule.EqualsRule.getRule(EqualsRule.java:85)
        at org.apache.log4j.rule.RuleFactory.getRule(RuleFactory.java:154)
        at org.apache.log4j.rule.ExpressionRule$PostFixExpressionCompiler.compileExpression(ExpressionRule.java:149)         at org.apache.log4j.rule.ExpressionRule.getRule(ExpressionRule.java:100)         at org.apache.log4j.filter.ExpressionFilter.activateOptions(ExpressionFilter.java:95)         at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)         at org.apache.log4j.xml.DOMConfigurator.parseFilters(DOMConfigurator.java:380)         at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:273)         at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:176)         at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:191)         at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:523)         at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:492)         at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:1006)         at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:872)         at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:778)         at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
        at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
        at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)


[1] http://logging.apache.org/log4j/companions/extras/apidocs/org/apache/log4j/filter/ExpressionFilter.html [2] https://logging.apache.org/log4j/companions/extras/apidocs/org/apache/log4j/spi/LoggingEventFieldResolver.html [3] http://mail-archives.apache.org/mod_mbox/logging-log4j-dev/200310.mbox/%3c20031027083531.85866.qm...@minotaur.apache.org%3E



Jake

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to