PrintObject determines if the startup status log messages should include initialization statements for this plugin (if my understanding is correct).
Sent from my iPhone > On 2015/08/28, at 13:47, Nicholas Duane <nic...@msn.com> wrote: > > While I got my LevelRangeFilter working I didn't get an answer to #1 below. > Can someone answer that for me so that I can code appropriately? > > Thanks, > Nick > >> From: nic...@msn.com >> To: log4j-user@logging.apache.org >> Subject: plugins >> Date: Thu, 27 Aug 2015 14:51:58 -0400 >> >> >> >> >> 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 > --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org