logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ralph Goers <ralph.go...@dslextreme.com>
Subject Re: range filter?
Date Wed, 26 Aug 2015 03:21:57 GMT
If you only want info events then you should do

<Filters>
  <ThresholdFilter level=“warn” onMatch=“DENY” onMisMatch=“NEUTRAL”/>
  <ThresholdFilter level=“info” onMatch=“ACCEPT” onMisMatch=“DENY”/>
</Filters>

If you want to illustrate the other use case you would need a configuration like

<root level=“ALL”>
  <appenderRef ref=“appender1”>
      <ThresholdFilter level=“INFO” onMatch=“DENY” onMisMatch=“ACCEPT”/>
  </appenderRef>
  <appenderRef ref=“appender2”>
    <Filters>
      <ThresholdFilter level=“FATAL” onMatch=“DENY” onMisMatch=“NEUTRAL”/>
      <ThresholdFilter level=“INFO” onMatch=“ACCEPT” onMisMatch=“DENY”/>
    </Filters>
  </appenderRef>
</root>

> On Aug 25, 2015, at 8:06 PM, Remko Popma <remko.popma@gmail.com> wrote:
> 
> The StackOverflow link was an answer to the question "how to send _only_ INFO level events
to an appender". 
> 
> I thought it would illustrate how filters combinations could be used to achieve the original
request: "I might want all DEBUG, TRACE and VERBOSE events going to one appender.  All INFO,
ERROR and WARN events going to another appender. All BUSINESS events (my custom) level, going
to yet another appender."
> 
> Seemed to me to be a similar use case to the SO question.
> 
> Sent from my iPhone
> 
>> On 2015/08/26, at 11:44, Ralph Goers <ralph.goers@dslextreme.com> wrote:
>> 
>> I am not sure why Remko advised you to do it this way.  The first filter will deny
Warn, error and fatal making the next two filters redundant. The third filter will accept
events at level info and deny trace and debug.  So the end result is the only events that
will get logged will be those at INFO level.
>> 
>> The composite filter really just wraps other filters and returns whatever result
they generate. For example, if the first filter returns accept or deny then that value will
be returned as the result without consulting any other filters. If the result is neutral then
the second filter will be used to see if the event passes that.
>> 
>> Ralph
>> 
>> 
>>> On Aug 25, 2015, at 7:09 PM, Nicholas Duane <nickdu@msn.com> wrote:
>>> 
>>> Maybe.  However, I'm having a hard time following what the configuration is saying
and thus have no idea what I would need to put in the configuration.  Here is a snippet from
that post:
>>> 
>>>         <!-- Now deny warn, error and fatal messages -->
>>> 
>>>                    <ThresholdFilter level="warn"  onMatch="DENY"   onMismatch="NEUTRAL"/>
>>> 
>>>         <ThresholdFilter level="error" onMatch="DENY"   onMismatch="NEUTRAL"/>
>>>         <ThresholdFilter level="fatal" onMatch="DENY"   onMismatch="NEUTRAL"/>
>>> 
>>>          <!-- This filter accepts info, warn, error, fatal and denies debug/trace
-->
>>> 
>>>          <ThresholdFilter level="info"  onMatch="ACCEPT" onMismatch="DENY"/>
>>> 
>>> 
>>> The top three seem as if they would deny warn, error and fatal, yet the third
says it accepts info, warn, error and fatal.  And while I understand those in isolation, I
think, I have no idea how the <filters> composite would handle this.  Why are the first
three needed?  How does the CompositeFilter work?  Does it try to match on each filter in
the list of stop as soon as it gets a DENY?
>>> 
>>> What if I wanted to setup a filter which just accepted WARN?  And on top of that
ensure that if anyone defined any custom levels which are maybe just 1 away from WARN in either
direction that those don't make it in the appender.  How would you do that?
>>> 
>>> How I did this with the log4net LevelRangeFilter was to set the levelMin and
levelMax to the same value.
>>> 
>>> Thanks,
>>> Nick
>>> 
>>>> Subject: Re: range filter?
>>>> From: remko.popma@gmail.com
>>>> Date: Wed, 26 Aug 2015 09:12:29 +0900
>>>> To: log4j-user@logging.apache.org
>>>> 
>>>> You misread the comment. The commentor basically told me the answer works
with a minor change, and that he would mark the question as "done" if I would edit my answer
(which I did).  
>>>> 
>>>> So the answer works and seems to apply to your use case, no? The question
is if it also works with custom levels. 
>>>> 
>>>> Sent from my iPhone
>>>> 
>>>>> On 2015/08/26, at 8:49, Nicholas Duane <nickdu@msn.com> wrote:
>>>>> 
>>>>> Thanks.  I checked out the link.  It seems they were trying to do something
similar to me.  I see the last comment on that is that it doesn't work.
>>>>> 
>>>>> There is another post afterwards which uses the ThresholdFilter.  However
the ThresholdFilter won't work as that allows, or denys, all levels greater than or equal
to or less than or equal to the level.  I need to filter a specific range of levels.
>>>>> 
>>>>> Thanks,
>>>>> Nick
>>>>> 
>>>>>> Date: Wed, 26 Aug 2015 08:27:04 +0900
>>>>>> Subject: Re: range filter?
>>>>>> From: remko.popma@gmail.com
>>>>>> To: log4j-user@logging.apache.org
>>>>>> 
>>>>>> Can you try something similar to this
>>>>>> http://stackoverflow.com/questions/24695133/log4j2-filter-particular-level-in-apender/24697002#24697002
>>>>>> and see if that works with custom levels as well?
>>>>>> 
>>>>>>> On Wed, Aug 26, 2015 at 6:04 AM, Nicholas Duane <nickdu@msn.com>
wrote:
>>>>>>> 
>>>>>>> I've tried a couple different combinations and so far no luck.
 Here's
>>>>>>> the current configuration I tested with which doesn't work:
>>>>>>> 
>>>>>>> <File ...>
>>>>>>> <PatternLayout>
>>>>>>>   ...
>>>>>>> </PatternLayout>
>>>>>>> <Filters>
>>>>>>>   <ThresholdFilter level="INFO" onMatch="DENY"/>
>>>>>>>   <ThresholdFilter level="DEBUG" onMatch="ACCEPT"/>
>>>>>>> </Filters>
>>>>>>> </File>
>>>>>>> 
>>>>>>> The
>>>>>>> use case for why I want such a filter is to forward a range of
events
>>>>>>> to an appender.  The threshold filter won't work because it will
send
>>>>>>> all events matching a certain level and lower to the appender.
 For
>>>>>>> instance, I might want all DEBUG, TRACE and VERBOSE events going
to one
>>>>>>> appender.  All INFO, ERROR and WARN events going to another appender.
>>>>>>> All BUSINESS events (my custom) level, going to yet another appender.
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> Nick
>>>>>>> 
>>>>>>>> Date: Tue, 25 Aug 2015 13:17:44 -0700
>>>>>>>> Subject: Re: range filter?
>>>>>>>> From: garydgregory@gmail.com
>>>>>>>> To: log4j-user@logging.apache.org
>>>>>>>> 
>>>>>>>> When you get it working, it sounds like it would make a nice
addition to
>>>>>>>> the FAQ with a description of your use case.
>>>>>>>> 
>>>>>>>> Gary
>>>>>>>> 
>>>>>>>> On Tue, Aug 25, 2015 at 1:11 PM, Ralph Goers <ralph.goers@dslextreme.com
>>>>>>>> 
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>>> I believe two threshold filters inside a composite filter
should should
>>>>>>>>> work provided you have the onMatch and onMismatch set
appropriately.
>>>>>>>>> 
>>>>>>>>> Ralph
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> On Aug 25, 2015, at 12:36 PM, Nicholas Duane <nickdu@msn.com>
wrote:
>>>>>>>>>> 
>>>>>>>>>> I'm looking for a range filter in log4j2.  I see
there is on in
>>>>>>> log4net
>>>>>>>>> and it appears there was one written by someone for log4j
1.  Just
>>>>>>>>> wondering if there is something 'out of the box' in log4j2
that will
>>>>>>>>> accomplish the same?  I was wondering whether this could
be
>>>>>>> accomplished
>>>>>>>>> with the CompositeFilter with two ThresholdFilter?
>>>>>>>>>> 
>>>>>>>>>> Thanks,
>>>>>>>>>> Nick
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>>>>>>>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> 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
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>> For additional commands, e-mail: log4j-user-help@logging.apache.org
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 
> 



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


Mime
View raw message