Hello, I just tried the example given for variable substitution in the FAQ with logback 1.0.0: http://logback.qos.ch/faq.html#sharedConfiguration And it seems the "context.reset();" line is not in the right place.
If I use the same code as in the example, I got this (I added a few lines of code at the end to print the filename that should be changed after doConfigure()): --BEGIN CODE-- LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); // context.reset(); // This works! // property of the LoggerContext context.putProperty("application-name", "killerapp"); JoranConfigurator jc = new JoranConfigurator(); jc.setContext(context); context.reset(); // override default configuration. This does not work (no variable substitution)! try { jc.doConfigure(Test.class.getResourceAsStream("/logback.xml")); } catch (JoranException e1) { throw new RuntimeException(e1); } Appender<ILoggingEvent> appender = context.getLogger("mylogger").getAppender("FILE"); String filename = ((RollingFileAppender<ILoggingEvent>) appender).getFile(); System.out.println("filename = " + filename); --END CODE-- --OUTPUT-- filename = d:/users/logs/application-name_IS_UNDEFINED_error.log --END OUTPUT-- Now, if I uncomment line 2: "// context.reset(); // This works!" and comment out " context.reset(); // override default configuration...", I get what I want: --OUTPUT-- filename = d:/users/logs/killerapp_error.log --END OUTPUT-- In short, it makes a more sense and it works if context.reset() is done before setting the property. Otherwise, I guess the property map is cleared with the reset if done after. Am I correct? In which case, the FAQ should be fixed accordingly Thanks.
_______________________________________________ Logback-user mailing list Logback-user@qos.ch http://mailman.qos.ch/mailman/listinfo/logback-user