The current version of Log4j has more internal logging than past ones, but
maybe not in this area.

If Yum or whatever installer Fedora likes best does not do what you want,
you can download the 2.3 jars from the Log4j site and put them in your
classpath.

Gary

On Wed, Aug 26, 2015 at 2:34 PM, Nicholas Duane <nic...@msn.com> wrote:

> While I work on figuring out how to get a newer version of log4j2
> installed I'm wondering whether there is some additional investigation I
> can do with the version I have.  For instance, I was hoping with the level
> of logging I have enabled, that log4j would be indicating some issue it had
> with the custom level.  However, I don't see such an issue.  The only thing
> I see is an issue with the custom level, which I'm guessing is when I'm
> using it in the filter.  I've attached the warning in the log below.
>
> Is there some additional logging I can turn on such that log4j will
> produce more info which might indicate why my custom levels aren't
> working?  Here is my current log4j2 configuration.
>
> log4j2.xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <Configuration status="trace" verbose="true">
>   <CustomLevels>
>     <CustomLevel name="INFOM1" intLevel="399"/>
>     <CustomLevel name="INFOP1" intLevel="401"/>
>   </CustomLevels>
>   <Appenders>
>     <File name="info" fileName="info.log">
>       <PatternLayout>
>     <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
>       </PatternLayout>
>       <Filters>
>     <ThresholdFilter level="INFOM1" onMatch="DENY" onMismatch="NEUTRAL"/>
>     <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
>       </Filters>
>     </File>
>   </Appenders>
>   <Loggers>
>     <Logger name="HelloWorld" level="ALL">
>       <AppenderRef ref="info"/>
>     </Logger>
>     <Root>
>     </Root>
>   </Loggers>
> </Configuration>
>
> snippet of console output:
>
> 2015-08-26 14:26:21,070 WARN Error while converting string [INFOM1] to
> type [class org.apache.logging.log4j.Level]. Using default value [null].
> java.lang.IllegalArgumentException: Unknown level constant [INFOM1].
>     at org.apache.logging.log4j.Level.valueOf(Level.java:281)
>     at
> org.apache.logging.log4j.core.config.plugins.util.TypeConverters$LevelConverter.convert(TypeConverters.java:240)
>     at
> org.apache.logging.log4j.core.config.plugins.util.TypeConverters$LevelConverter.convert(TypeConverters.java:237)
>     at
> org.apache.logging.log4j.core.config.plugins.util.TypeConverters.convert(TypeConverters.java:343)
>     at
> org.apache.logging.log4j.core.config.plugins.visitors.AbstractPluginVisitor.convert(AbstractPluginVisitor.java:130)
>     at
> org.apache.logging.log4j.core.config.plugins.visitors.PluginAttributeVisitor.visit(PluginAttributeVisitor.java:44)
>     at
> org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.generateParameters(PluginBuilder.java:233)
>     at
> org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:131)
>     at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:748)
>     at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:683)
>     at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:675)
>     at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:675)
>     at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:675)
>     at
> org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:349)
>     at
> org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:150)
>     at
> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:358)
>     at
> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:416)
>     at
> org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:146)
>     at
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:75)
>     at
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:37)
>     at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:473)
>     at HelloWorld.<clinit>(HelloWorld.java:7)
>
> Thanks,
> Nick
>
> > Date: Wed, 26 Aug 2015 12:36:40 -0700
> > Subject: Re: custom levels via configuration
> > From: garydgreg...@gmail.com
> > To: log4j-user@logging.apache.org
> >
> > We've never released a version "2.0-1.fc21" so it must be a Fedora build,
> > presumably based on 2.0 or some fork of it.
> >
> > You need to test with version 2.3 or a 2.4-SNAPSHOT. I'll leave you to
> > Google how to install 2.3 on Fedora ;-)
> >
> > Gary
> >
> > On Wed, Aug 26, 2015 at 12:14 PM, Nicholas Duane <nic...@msn.com> wrote:
> >
> > > First off let me admit that I'm a noob at both Linux and java, and
> log4j
> > > for that matter.
> > >
> > > I don't know how to package anything so my class that you see is a
> simple
> > > java class which I compiled using javac.  I then run it using 'java
> > > HelloWorld'.  I'm running fedora 21.  When I do a 'yum list log4j' it
> says
> > > I have 2.0-1.fc21.
> > >
> > > Thanks,
> > > Nick
> > >
> > > > Date: Wed, 26 Aug 2015 11:46:51 -0700
> > > > Subject: Re: custom levels via configuration
> > > > From: garydgreg...@gmail.com
> > > > To: log4j-user@logging.apache.org
> > > >
> > > > This:
> > > >
> > > > <Logger name="HelloWorld" level="ALL">
> > > >
> > > > is only going to match:
> > > >
> > > > static Logger log = LogManager.getLogger(HelloWorld.class.getName());
> > > >
> > > > if the class in unpackaged, which it looks it is based on this paste
> but
> > > I
> > > > want to double check that you did not omit anything from the example.
> > > >
> > > > Are you using the latest version (2.3)?.
> > > >
> > > > I just added this test the other day to Git master:
> > > >
> > > > org.apache.logging.log4j.core.CustomLevelsTest
> > > >
> > > > And it shows that we can configure custom levels from a file and see
> them
> > > > in code.
> > > >
> > > > So I am puzzled here.
> > > >
> > > > You could try the latest from Git master as well but I do not recall
> any
> > > > fixes in this area.
> > > >
> > > > I wonder if the Appenders are processed by the configuration
> _before_ the
> > > > custom levels...
> > > >
> > > > Gary
> > > >
> > > >
> > > > On Wed, Aug 26, 2015 at 11:19 AM, Nicholas Duane <nic...@msn.com>
> wrote:
> > > >
> > > > >
> > > > >
> > > > >
> > > > > On to my next problem.  I'm trying to define a custom level in
> > > > > configuration.  Not sure if it's working or not.  However, when I
> > > attempt
> > > > > to get the level for that custom level I get back null, which I
> wasn't
> > > > > expecting.  Here is the log4j2.xml config file:
> > > > >
> > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > <Configuration status="trace" verbose="true">
> > > > >   <CustomLevels>
> > > > >     <CustomLevel name="INFOM1" intLevel="399"/>
> > > > >     <CustomLevel name="INFOP1" intLevel="401"/>
> > > > >   </CustomLevels>
> > > > >   <Appenders>
> > > > >     <File name="info" fileName="info.log">
> > > > >       <PatternLayout>
> > > > >     <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
> > > > >       </PatternLayout>
> > > > >       <Filters>
> > > > >     <ThresholdFilter level="INFOM1" onMatch="DENY"
> > > onMismatch="NEUTRAL"/>
> > > > >     <ThresholdFilter level="INFO" onMatch="ACCEPT"
> onMismatch="DENY"/>
> > > > >       </Filters>
> > > > >     </File>
> > > > >   </Appenders>
> > > > >   <Loggers>
> > > > >     <Logger name="HelloWorld" level="ALL">
> > > > >       <AppenderRef ref="info"/>
> > > > >     </Logger>
> > > > >     <Root>
> > > > >     </Root>
> > > > >   </Loggers>
> > > > > </Configuration>
> > > > >
> > > > > Here is my code:
> > > > >
> > > > > import org.apache.logging.log4j.LogManager;
> > > > > import org.apache.logging.log4j.Logger;
> > > > > import org.apache.logging.log4j.Level;
> > > > >
> > > > > public class HelloWorld
> > > > > {
> > > > >     static Logger log =
> > > LogManager.getLogger(HelloWorld.class.getName());
> > > > >
> > > > >     public static void main(String[] args)
> > > > >     {
> > > > >       System.out.println("Hello, World");
> > > > >       log.info("hello this is an INFO  message");
> > > > >       log.warn("hello this is a WARN message");
> > > > >       log.debug("hello this is a DEBUG message");
> > > > >       Level level = Level.getLevel("INFOM1");
> > > > >       if (level == null)
> > > > >     System.out.println("Didn't find level INFOM1");
> > > > >       else
> > > > >         log.log(level, "hello this is an INFOM1 message");
> > > > >       level = Level.getLevel("INFOP1");
> > > > >       if (level == null)
> > > > >     System.out.println("Didn't find level INFOP1");
> > > > >       else
> > > > >         log.log(level, "hello this is an INFOP1 message");
> > > > >     }
> > > > > }
> > > > >
> > > > > Any ideas?  I obviously don't want to use Level.forName() as that
> will
> > > > > create the level if it doesn't exist and I want to ensure I'm
> pulling
> > > the
> > > > > value from the configuration.
> > > > >
> > > > > 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
> > >
> > >
> >
> >
> >
> > --
> > 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
>
>



-- 
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