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