Based on your previous comments I assume one would show up out-of-the-box at 
some point.  Of course I need mine now so unfortunately I have to write one.
 
Any input on my questions below?
 
Thanks,
Nick
 
> Date: Thu, 27 Aug 2015 12:20:07 -0700
> Subject: Re: plugins
> From: garydgreg...@gmail.com
> To: log4j-user@logging.apache.org
> 
> Note that I wrote such a filter, which is under review ATM here:
> 
> - https://issues.apache.org/jira/browse/LOG4J2-1106
> - https://issues.apache.org/jira/browse/LOG4J2-1105
> 
> Gary
> 
> On Thu, Aug 27, 2015 at 11:51 AM, Nicholas Duane <nic...@msn.com> wrote:
> 
> >
> >
> >
> > I've got a couple questions regarding plugins I'm hoping someone might be
> > able to help me with.  I checked the docs and it's still not quite clear.
> >
> > 1. I'm unsure what to set printObject to in my Plugin annotation.  From
> > http://logging.apache.org/log4j/2.x/manual/extending.html it says:
> >
> > "Specifying the printObject attribute with a value of "true" indicates
> > that a call to toString will format the arguments to the filter as the
> > configuration is being processed."
> >
> > which unfortunately doesn't clear things up any.  I looked at the docs for
> > printObject and that doesn't say anything other than it's a Boolean and its
> > default is false.
> >
> > 2. I created a LevelRangeFiler and I'm trying to figure out how to get it
> > loaded by log4j.  I read over the instructions on plugins located at
> > http://logging.apache.org/log4j/2.x/manual/plugins.html but since I'm a
> > java noob I'm still a bit lost.  I'm wondering, if I just have a .java
> > class which I compile to a .class file, can that be used?  If so, how?
> >
> > Below is the filter I wrote based on looking at the threshold filter
> > example at http://logging.apache.org/log4j/2.x/manual/extending.html.
> >
> > import org.apache.logging.log4j.core.filter.AbstractFilter;
> > import org.apache.logging.log4j.core.Filter;
> > import org.apache.logging.log4j.core.config.plugins.Plugin;
> > import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
> > import org.apache.logging.log4j.core.config.plugins.PluginFactory;
> > import org.apache.logging.log4j.Level;
> > import org.apache.logging.log4j.core.LogEvent;
> > import org.apache.logging.log4j.core.Logger;
> > import org.apache.logging.log4j.Marker;
> > import org.apache.logging.log4j.message.Message;
> >
> > @Plugin(name="LevelRangeFilter", category="Core", elementType="filter",
> >         printObject=true)
> > public class LevelRangeFilter extends AbstractFilter
> > {
> >     private final Level minLevel;
> >     private final Level maxLevel;
> >
> >     public LevelRangeFilter(Level minLevel, Level maxLevel,
> >             Filter.Result onMatch, Filter.Result onMismatch)
> >     {
> >     super(onMatch, onMismatch);
> >     this.minLevel = minLevel;
> >     this.maxLevel = maxLevel;
> >     }
> >
> >     private Result filter(Level level)
> >     {
> >     if (level.isMoreSpecificThan(this.minLevel) &&
> >             level.isLessSpecificThan(this.maxLevel))
> >         {
> >         return this.onMatch;
> >         }
> >     return this.onMismatch;
> >     }
> >
> >     public Filter.Result filter(Logger logger, Level level,
> >             Marker marker, String msg, Object[] params)
> >     {
> >     return filter(level);
> >     }
> >
> >     public Filter.Result filter(Logger logger, Level level,
> >         Marker marker, Object msg, Throwable t)
> >     {
> >     return filter(level);
> >     }
> >
> >     public Filter.Result filter(Logger logger, Level level,
> >         Marker marker, Message msg, Throwable t)
> >     {
> >     return filter(level);
> >     }
> >
> >     public Filter.Result filter(LogEvent event)
> >     {
> >     return filter(event.getLevel());
> >     }
> >
> >     @PluginFactory
> >     public static LevelRangeFilter createFilter(
> >         @PluginAttribute(value="minLevel",
> >         defaultString="DEBUG") Level minLevel,
> >         @PluginAttribute(value="maxLevel",
> >         defaultString="FATAL") Level maxLevel,
> >         @PluginAttribute(value="onMatch",
> >         defaultString="NEUTRAL") Result onMatch,
> >         @PluginAttribute(value="onMismatch",
> >         defaultString="DENY") Result onMismatch)
> >     {
> >     return new LevelRangeFilter(minLevel, maxLevel, onMatch, onMismatch);
> >     }
> > }
> >
> > Thanks,
> > Nick
> >
> >
> >
> 
> 
> 
> 
> -- 
> 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
                                          

Reply via email to