[
https://issues.apache.org/jira/browse/LOG4J2-601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15201251#comment-15201251
]
Joern Huxhorn commented on LOG4J2-601:
--------------------------------------
A {{Result filter(Logger logger, Level level, Marker marker)}} method would
have to somehow indicate a "I can't decide"/"I know that I know nothing" state.
That state would have to propagate up in case of a composite filter. If any of
the contained filters say "I can't decide" then {{isEnabled(Level, Marker)}}
needs to work like {{isEnabled(Level)}} since only the actual logging call can
know whether or not the event will be logged, i.e. it must pass the "enabled"
check.
Returning {{null}} and handling it appropriately would be an easy way to
implement such a "I can't decide" state.
The alternative would require a new {{Result}} enum value like
{{QUANTUM_SUPERPOSITION}} but I think returning {{null}} is actually better in
this case, semantically.
> Log.log and isEnabled react differently for marker filters
> ----------------------------------------------------------
>
> Key: LOG4J2-601
> URL: https://issues.apache.org/jira/browse/LOG4J2-601
> Project: Log4j 2
> Issue Type: Bug
> Components: Filters
> Affects Versions: 2.0-rc1
> Environment: OSX 10.8/10.9, Eclipse, Java 1.6/1.7
> Reporter: Dan Hagberg
> Attachments: DbMarkers.java, TestLog2.java,
> console_atConfigLevel.txt, console_atLoggerLevel.txt, console_noFilter.txt,
> log4j2_atConfigLevel.xml, log4j2_atLoggerLevel.xml, log4j2_nofilter.xml
>
>
> I am trying to determine if a logger exists for a Marker in Log4j 2. The
> filter works when actually logging. The problem is when checking
> isEnabled(level, marker). If the MarkerFilters are at the Configuration
> level, then it works as expected. If at the logger or appender level, then it
> bypasses the marker and considers only the threshold level.
> Looking at the documentation, it looks like if accepted/denied is at the
> configuration level, then it will not check any other filters and that status
> will be honored, so that makes sense that it works here.
> Is this the expected behavior that the isEnabled works only at the
> configuration level and is not expected to represent whether or not a message
> will be logged? Or is it that if isEnabled returns true, then the message
> should be logged?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]