379207 backported fixes from jetty-9 to make hierarchy work

This commit is contained in:
Greg Wilkins 2012-07-27 09:24:25 +10:00
parent 748f06cad7
commit c7c4c6e13b
2 changed files with 19 additions and 5 deletions

View File

@ -332,7 +332,7 @@ public class StdErrLog extends AbstractLogger
for (Logger log : Log.getLoggers().values())
{
if (log instanceof StdErrLog)
if (log.getName().startsWith(getName()) && log instanceof StdErrLog)
((StdErrLog)log).setLevel(LEVEL_DEBUG);
}
}
@ -342,7 +342,7 @@ public class StdErrLog extends AbstractLogger
for (Logger log : Log.getLoggers().values())
{
if (log instanceof StdErrLog)
if (log.getName().startsWith(getName()) && log instanceof StdErrLog)
((StdErrLog)log).setLevel(((StdErrLog)log)._configuredLevel);
}
}
@ -573,6 +573,10 @@ public class StdErrLog extends AbstractLogger
logger.setSource(_source);
logger._stderr = this._stderr;
// Force the child to have any programmatic configuration
if (_level!=_configuredLevel)
logger._level=_level;
return logger;
}

View File

@ -69,18 +69,28 @@ public class StdErrLogTest
log.debug("YOU SHOULD NOT SEE THIS!",null,null);
// Test for backward compat with old (now deprecated) method
Logger before = log.getLogger("before");
log.setDebugEnabled(true);
Logger after = log.getLogger("after");
before.debug("testing {} {}","test","debug-before");
log.debug("testing {} {}","test","debug-deprecated");
after.debug("testing {} {}","test","debug-after");
log.setDebugEnabled(false);
before.debug("testing {} {}","test","debug-before-false");
log.debug("testing {} {}","test","debug-deprecated-false");
after.debug("testing {} {}","test","debug-after-false");
output.assertContains("DBUG:xxx:testing test debug");
output.assertContains("INFO:xxx:testing test info");
output.assertContains("WARN:xxx:testing test warn");
output.assertNotContains("YOU SHOULD NOT SEE THIS!");
output.assertContains("DBUG:x.before:testing test debug-before");
output.assertContains("DBUG:xxx:testing test debug-deprecated");
output.assertNotContains("DBUG:xxx:testing test debug-depdeprecated-false");
output.assertContains("DBUG:x.after:testing test debug-after");
output.assertNotContains("DBUG:x.before:testing test debug-before-false");
output.assertNotContains("DBUG:xxx:testing test debug-deprecated-false");
output.assertNotContains("DBUG:x.after:testing test debug-after-false");
}
@Test