No. If the custom level was 1 greater than INFO, then yes. In that case you 
would specify your custom level instead of WARN as the level on the first 
ThresholdFilter.

Ralph

> On Aug 25, 2015, at 9:39 PM, Nicholas Duane <[email protected]> wrote:
> 
> What if someone defined a custom level one less than INFO?  Wouldn't that end 
> up in the log also?
> Thanks,Nick
> 
> -------- Original message --------
> From: Ralph Goers <[email protected]>
> Date: 08/25/2015  10:28 PM  (GMT-07:00)
> To: Log4J Users List <[email protected]>
> Subject: Re: range filter?
> 
> I just did.
> 
> Ralph
> 
>> On Aug 25, 2015, at 9:12 PM, Nicholas Duane <[email protected]> wrote:
>> 
>> That's exactly the use case I'm looking for.  I'll have to study it some 
>> more.  Can you give me an example which filters out everything but INFO?
>> Thanks,Nick
>> 
>> -------- Original message --------
>> From: Remko Popma <[email protected]>
>> Date: 08/25/2015  9:06 PM  (GMT-07:00)
>> To: Log4J Users List <[email protected]>
>> Subject: Re: range filter?
>> 
>> 
>> 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 <[email protected]> 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 <[email protected]> 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: [email protected]
>> 
>>>>> Date: Wed, 26 Aug 2015 09:12:29 +0900
>> 
>>>>> To: [email protected]
>> 
>>>>> 
>> 
>>>>> 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 <[email protected]> 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: [email protected]
>> 
>>>>>>> To: [email protected]
>> 
>>>>>>> 
>> 
>>>>>>> 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 <[email protected]> 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: [email protected]
>> 
>>>>>>>>> To: [email protected]
>> 
>>>>>>>>> 
>> 
>>>>>>>>> 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 
>>>>>>>>> <[email protected]
>> 
>>>>>>>>> 
>> 
>>>>>>>>> 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 <[email protected]> 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: [email protected]
>> 
>>>>>>>>>> For additional commands, e-mail: [email protected]
>> 
>>>>>>>>> 
>> 
>>>>>>>>> 
>> 
>>>>>>>>> --
>> 
>>>>>>>>> E-Mail: [email protected] | [email protected]
>> 
>>>>>>>>> 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: [email protected]
>> 
>>>>> For additional commands, e-mail: [email protected]
>> 
>>> 
>> 
>>> 
>> 
>>> 
>> 
>>> ---------------------------------------------------------------------
>> 
>>> To unsubscribe, e-mail: [email protected]
>> 
>>> For additional commands, e-mail: [email protected]
>> 
>>> 
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> 
>> To unsubscribe, e-mail: [email protected]
>> 
>> For additional commands, e-mail: [email protected]
>> 
>> 
>> 
>> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to