[logback-user] TRACE messages get through even at DEBUG Level
Ceki Gulcu
ceki at qos.ch
Tue Feb 24 10:20:52 CET 2009
Andy,
Thank you for your message. I think the following test reproduces the bug you
have encountered.
@Test
public void levelResetTest() {
LoggerContext loggerContext = new LoggerContext();
Logger root = loggerContext.getLogger(LoggerContext.ROOT_NAME);
root.setLevel(Level.TRACE);
assertTrue(root.isTraceEnabled());
loggerContext.reset();
assertFalse(root.isTraceEnabled()); <-- assertion fails
assertTrue(root.isDebugEnabled());
}
If so, could you please enter a jira issue at http://jira.qos.ch ? Many thanks
in advance,
Andy Ruch wrote:
> Hello,
>
> I'm using SLF4J 1.5.6 and Logback 0.9.15.
>
> I'm wanting to reconfigure Logback in my code, but I think I've found a bug. I've copied the following code from the documentation for how to reconfigure Logback.
>
> // assume SLF4J is bound to logback in the current environment
> LoggerContext lc = ( LoggerContext ) LoggerFactory.getILoggerFactory();
>
> try {
> JoranConfigurator configurator = new JoranConfigurator();
> configurator.setContext( lc );
> // the context was probably already configured by default configuration
> // rules
> lc.reset();
> configurator.doConfigure( url );
> }
> catch ( JoranException je ) {
> je.printStackTrace();
> }
> StatusPrinter.printInCaseOfErrorsOrWarnings( lc );
>
>
> This works fine, except for when my new root logger level is DEBUG. If that is the case,
> I receive trace messages also. I have tracked the issue down to
> ch.qos.logback.classic.Logger. When localLevelReset() is called, the
> effectiveLevelInt is set to DEBUG_INT = 10. If it is the root logger,
> the level is also set to DEBUG. When the logger is being reconfigured,
> setLevel() is called with newLevel = DEBUG. Because level == newLevel,
> nothing happens and the method returns. However, effectiveLevelInt is never
> being set to ch.qos.logback.classic.Level.DEBUG_INT = 10000. When a TRACE log
> message is then evaluated, it is sent through because the effectiveLevelInt
is still 10,
> even though Level should be DEBUG.
--
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch
More information about the Logback-user
mailing list