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.po...@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.go...@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 <nic...@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.po...@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 <nic...@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.po...@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 <nic...@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: garydgreg...@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.go...@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 <nic...@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-unsubscr...@logging.apache.org
>>>>>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@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-unsubscr...@logging.apache.org
>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
>> For additional commands, e-mail: log4j-user-h...@logging.apache.org
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-user-h...@logging.apache.org
> 
> 



---------------------------------------------------------------------
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