I apologize, you are correct. The level values do decrease.

Regardless, your point about wanting to filter on essentially a single integer 
value makes sense.

Ralph

> On Aug 26, 2015, at 6:12 AM, Nicholas Duane <nic...@msn.com> wrote:
> 
> Hmmm, I thought for log4j the threshold was less than or equal to the level.  
> For instance, if the threshold is INFO then INFO and less than, eg more 
> critical like WARN ERROR and FATAL would match.  It's opposite in log4net.  
> Regardless, this is the issue I wanted to point out.  The stackoverflow 
> article doesn't filter only INFO level, it seems it filters INFO and anything 
> between INFO and WARN but not including WARN.
> 
> If I want just a single level then I would like a way to specify that without 
> me having to potentially go back and edit the configuration if someone 
> decides to specify a custom level via configuration or code.  The 
> LevelRangeFilter provides an easy mechanism for me to do this by specifying 
> the same level for min and max.  I guess you're suggesting I could accomplish 
> this via the composite filter and the threshold filter, however, I would have 
> to define a custom level that is one less than or one more than the level I'm 
> looking to capture so that I ensure I'm only getting that one level.  I will 
> try this out, but it would be nice to have something like the 
> LevelRangeFilter.
> 
> Thanks,
> Nick
> 
>> Subject: Re: range filter?
>> From: ralph.go...@dslextreme.com
>> Date: Tue, 25 Aug 2015 22:08:01 -0700
>> To: log4j-user@logging.apache.org
>> 
>> 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 <nic...@msn.com> 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 <ralph.go...@dslextreme.com>
>>> Date: 08/25/2015  10:28 PM  (GMT-07:00)
>>> To: Log4J Users List <log4j-user@logging.apache.org>
>>> Subject: Re: range filter?
>>> 
>>> I just did.
>>> 
>>> Ralph
>>> 
>>>> On Aug 25, 2015, at 9:12 PM, Nicholas Duane <nic...@msn.com> 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 <remko.po...@gmail.com>
>>>> Date: 08/25/2015  9:06 PM  (GMT-07:00)
>>>> To: Log4J Users List <log4j-user@logging.apache.org>
>>>> 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 <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
>>> 
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> 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