logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <garydgreg...@gmail.com>
Subject Re: Async DynamicThresholdFilter broken?
Date Tue, 19 Jan 2016 20:15:14 GMT
Sounds like POB (Plain Old Bug). Can you create a JIRA and attach a diff
file please?


On Tue, Jan 19, 2016 at 11:51 AM, Francis Lalonde <fralalonde@expedia.com>
wrote:

> Hello Log4J users,
>
> I am using Log4J 2.5 with AsyncLogger mode enabled. I am trying to filter
> events at the Appender level using DynamicThresholdFilter but it is not
> working.
>
> I believe this is because the filter is basing its decision on the
> ThreadContext even though it is filtering an asynchronous event on a worker
> thread :
>
>     private Result filter(final Level level) {
>         final Object value = ThreadContext.get(key); // always returns
> null, ThreadContext is empty on disruptor thread
>         if (value != null) {
> ...
>
> I fixed the DynamicThresholdFilter to use the context from the log event
> instead,  and it  gave me the expected filtering behavior :
>
>     private Result filter(final Level level, Map<String, String> context) {
>         final Object value = context.get(key);
>         if (value != null) {
> ...
>
>     public Result filter(final LogEvent event) {
>         return filter(event.getLevel(), event.getContextMap());
>     }
>
>     public Result filter(final Logger logger, final Level level, final
> Marker marker, final Message msg,
>                          final Throwable t) {
>         return filter(level, ThreadContext.getContext());
>     }
>
> ThreadContextMapFilter is built the same way. Unless I am mistaken and
> forgot some basic tenement of log4j usage, this make these Filters useless
> in async mode elsewhere than Context-wide.
>
> Should I keep  on using my fixed version of the Filter or should I submit
> a tentative fix? If so, please tell me what is the procedure to do so.
>
> Thank you,
>
> Francis
>
>
>
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message