On Fri, Aug 2, 2013 at 5:56 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
> On Fri, Aug 2, 2013 at 5:51 PM, Ralph Goers <ralph.go...@dslextreme.com>wrote: > >> We definitely need more examples. Creating some sample code might also >> spur us to simplify APIs where we can. >> > > I bet! That's a great idea. > It should also help us make sure what we want to be public since we'll be bound to supporting all public APIs. Gary > > Gary > > >> >> Ralph >> >> >> On Aug 2, 2013, at 2:38 PM, Gary Gregory wrote: >> >> > Does any of this belong in the 'extending log4j' section of the manual? >> The >> > Javadoc? >> > >> > Gary >> > >> > >> > On Fri, Aug 2, 2013 at 8:30 AM, Christian Grobmeier < >> grobme...@gmail.com>wrote: >> > >> >> Hi, >> >> >> >> I looked at it (Simone provided me a patch with the current state of >> work). >> >> >> >> You need to override this in the OnamiConfigurationFactory: >> >> >> >> @Override >> >> public Configuration getConfiguration(final String name, final URI >> >> configLocation) { >> >> return getConfiguration(null); >> >> } >> >> >> >> The problem is that you need a configLocation otherwise you will be >> >> returned null which causes the NPE: >> >> >> >> LoggerContext line 369 in beta-8: >> >> final Configuration instance = >> >> ConfigurationFactory.getInstance().getConfiguration(name, >> >> configLocation) >> >> >> >> This is of course unfortunate. I have debugged the whole configuration >> >> and think its very difficult >> >> to programmatically configure log4j without using a xml/json file. If >> >> we have a chance to make configuration easier, >> >> we should do it. >> >> >> >> Others: are there any plans / ideas for it already? >> >> >> >> Cheers >> >> Christian >> >> >> >> >> >> On Fri, Aug 2, 2013 at 10:52 AM, Simone Tripodi >> >> <simonetrip...@apache.org> wrote: >> >>> Hi all mates, >> >>> >> >>> I am trying to setup log4j2 configuration programmatically, I defined >> >>> my version of Configuration: >> >>> >> >>> >> >> >> +------------------------------------------------------------------------------------------------------------------------------------+ >> >>> class MyLoggingConfiguration >> >>> extends BaseConfiguration >> >>> { >> >>> >> >>> private final String levelName; >> >>> >> >>> private final String pattern; >> >>> >> >>> public MyLoggingConfiguration( String levelName, String pattern ) >> >>> { >> >>> this.levelName = levelName; >> >>> this.pattern = pattern; >> >>> } >> >>> >> >>> @Override >> >>> protected void doConfigure() >> >>> { >> >>> setName( "my" ); >> >>> >> >>> Layout<? extends Serializable> layout = createLayout( pattern, >> >>> null, null, null, null ); >> >>> Appender<? extends Serializable> appender = createAppender( >> >>> layout, null, "SYSTEM_OUT", "Console", "false", "true" ); >> >>> appender.start(); >> >>> addAppender( appender ); >> >>> getRootLogger().addAppender( appender, null, null ); >> >>> >> >>> Level level = Level.valueOf( levelName ); >> >>> getRootLogger().setLevel( level ); >> >>> } >> >>> >> >>> } >> >>> >> >> >> +------------------------------------------------------------------------------------------------------------------------------------+ >> >>> >> >>> and ConfigurationFactory: >> >>> >> >>> >> >> >> +------------------------------------------------------------------------------------------------------------------------------------+ >> >>> class MyConfigurationFactory >> >>> extends ConfigurationFactory >> >>> { >> >>> >> >>> private final String levelName; >> >>> >> >>> private final String pattern; >> >>> >> >>> public MyConfigurationFactory( String levelName, String pattern ) >> >>> { >> >>> this.levelName = levelName; >> >>> this.pattern = pattern; >> >>> } >> >>> >> >>> @Override >> >>> protected String[] getSupportedTypes() >> >>> { >> >>> return new String[] { "*" }; >> >>> } >> >>> >> >>> @Override >> >>> public Configuration getConfiguration( ConfigurationSource source ) >> >>> { >> >>> return new MyLoggingConfiguration( levelName, pattern ); >> >>> } >> >>> >> >>> } >> >>> >> >> >> +------------------------------------------------------------------------------------------------------------------------------------+ >> >>> >> >>> then, as specified in the Javadoc, invoke >> >>> ConfigurationFactory#setConfigurationFactory(new >> >>> MyConfigurationFactory("INFO", "[%level] %message%n")) before any >> >>> other calls to Log4j, but when my application starts, an exception is >> >>> thrown: >> >>> >> >>> >> >> >> +------------------------------------------------------------------------------------------------------------------------------------+ >> >>> Exception in thread "main" java.lang.NullPointerException: No >> >>> Configuration was provided >> >>> at >> >> >> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:323) >> >>> at >> >> >> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:370) >> >>> at >> >> >> org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:149) >> >>> at >> >> >> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:85) >> >>> at >> >> >> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:34) >> >>> at >> >> org.apache.logging.log4j.LogManager.getLogger(LogManager.java:364) >> >>> at >> >> org.apache.logging.log4j.LogManager.getLogger(LogManager.java:319) >> >>> ... >> >>> >> >> >> +------------------------------------------------------------------------------------------------------------------------------------+ >> >>> >> >>> What am I doing wrong? >> >>> Many thanks in advance, all the best! >> >>> -Simo >> >>> >> >>> http://people.apache.org/~simonetripodi/ >> >>> http://twitter.com/simonetripodi >> >>> >> >>> --------------------------------------------------------------------- >> >>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >> >>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >> >>> >> >> >> >> >> >> >> >> -- >> >> http://www.grobmeier.de >> >> https://www.timeandbill.de >> >> >> >> --------------------------------------------------------------------- >> >> 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 >> >> > > > -- > 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