提交 bf2e0ffb 编写于 作者: M mchung

8006104: Improve tests to test ".useParentHandlers" property set in the logging configuration

Reviewed-by: alanb
上级 8078c4c1
...@@ -43,6 +43,20 @@ public class CustomLogManager extends LogManager { ...@@ -43,6 +43,20 @@ public class CustomLogManager extends LogManager {
INSTANCE = this; INSTANCE = this;
} }
private boolean useParentHandlers(String loggerName) {
String s = props.getProperty(loggerName + ".useParentHandlers");
if (s == null)
return true; // default is true
s = s.toLowerCase();
if (s.equals("true") || s.equals("1")) {
return true;
} else if (s.equals("false") || s.equals("0")) {
return false;
}
return true;
}
public synchronized boolean addLogger(Logger logger) { public synchronized boolean addLogger(Logger logger) {
String name = logger.getName(); String name = logger.getName();
if (namedLoggers.containsKey(name)) { if (namedLoggers.containsKey(name)) {
...@@ -57,6 +71,9 @@ public class CustomLogManager extends LogManager { ...@@ -57,6 +71,9 @@ public class CustomLogManager extends LogManager {
if (props.get(name + ".handlers") != null && logger.getHandlers().length == 0) { if (props.get(name + ".handlers") != null && logger.getHandlers().length == 0) {
logger.addHandler(new CustomHandler()); logger.addHandler(new CustomHandler());
} }
if (!useParentHandlers(name)) {
logger.setUseParentHandlers(false);
}
// add parent loggers // add parent loggers
int ix = 1; int ix = 1;
for (;;) { for (;;) {
...@@ -72,7 +89,10 @@ public class CustomLogManager extends LogManager { ...@@ -72,7 +89,10 @@ public class CustomLogManager extends LogManager {
// //
// The test doesn't set the parent for simplicity. // The test doesn't set the parent for simplicity.
if (!namedLoggers.containsKey(pname)) { if (!namedLoggers.containsKey(pname)) {
Logger.getLogger(pname); Logger parent = Logger.getLogger(pname);
if (!useParentHandlers(pname)) {
parent.setUseParentHandlers(false);
}
} }
} }
ix = ix2 + 1; ix = ix2 + 1;
...@@ -110,14 +130,16 @@ public class CustomLogManager extends LogManager { ...@@ -110,14 +130,16 @@ public class CustomLogManager extends LogManager {
props.put("CustomLogManager$CustomHandler.level", "WARNING"); props.put("CustomLogManager$CustomHandler.level", "WARNING");
props.put(".handlers", "CustomLogManager$CustomHandler"); props.put(".handlers", "CustomLogManager$CustomHandler");
props.put("org.foo.bar.level", "SEVERE"); props.put("org.foo.bar.level", "SEVERE");
props.put("org.foo.bar.useParentHandlers", "true");
props.put("org.foo.handlers", "CustomLogManager$CustomHandler"); props.put("org.foo.handlers", "CustomLogManager$CustomHandler");
props.put("org.foo.useParentHandlers", "false");
props.put("org.openjdk.level", "SEVERE"); props.put("org.openjdk.level", "SEVERE");
props.put("org.openjdk.handlers", "CustomLogManager$CustomHandler"); props.put("org.openjdk.handlers", "CustomLogManager$CustomHandler");
props.put("org.openjdk.core.level", "INFO"); props.put("org.openjdk.core.level", "INFO");
props.put("org.openjdk.core.useParentHandlers", "false");
return props; return props;
} }
public static void checkLogger(String name) { public static void checkLogger(String name) {
checkLogger(name, null); checkLogger(name, null);
} }
...@@ -127,10 +149,11 @@ public class CustomLogManager extends LogManager { ...@@ -127,10 +149,11 @@ public class CustomLogManager extends LogManager {
if (logger == null) { if (logger == null) {
throw new RuntimeException("Logger \"" + name + "\" not exist"); throw new RuntimeException("Logger \"" + name + "\" not exist");
} }
System.out.format("Logger \"%s\" level=%s handlers=%s resourcebundle=%s%n", System.out.format("Logger \"%s\" level=%s handlers=%s resourcebundle=%s useParentHandlers=%s%n",
name, logger.getLevel(), name, logger.getLevel(),
Arrays.toString(logger.getHandlers()), Arrays.toString(logger.getHandlers()),
logger.getResourceBundleName()); logger.getResourceBundleName(),
logger.getUseParentHandlers());
String rb = logger.getResourceBundleName(); String rb = logger.getResourceBundleName();
if (rb != resourceBundleName && (rb == null || rb.equals(resourceBundleName))) { if (rb != resourceBundleName && (rb == null || rb.equals(resourceBundleName))) {
throw new RuntimeException("Logger \"" + name + throw new RuntimeException("Logger \"" + name +
...@@ -150,6 +173,13 @@ public class CustomLogManager extends LogManager { ...@@ -150,6 +173,13 @@ public class CustomLogManager extends LogManager {
throw new RuntimeException("Logger \"" + name + "\" unexpected handler: " + throw new RuntimeException("Logger \"" + name + "\" unexpected handler: " +
Arrays.toString(handlers)); Arrays.toString(handlers));
} }
String s = INSTANCE.getProperty(name + ".useParentHandlers");
boolean uph = (s != null && s.equals("false")) ? false : true;
if (logger.getUseParentHandlers() != uph) {
throw new RuntimeException("Logger \"" + name + "\" unexpected useParentHandlers: " +
logger.getUseParentHandlers());
}
checkParents(name); checkParents(name);
} }
......
...@@ -29,7 +29,7 @@ import sun.util.logging.PlatformLogger; ...@@ -29,7 +29,7 @@ import sun.util.logging.PlatformLogger;
/* /*
* @test * @test
* @bug 8005615 * @bug 8005615 8006104
* @summary Add loggers to custom log manager * @summary Add loggers to custom log manager
* *
* @compile -XDignore.symbol.file CustomLogManagerTest.java CustomLogManager.java * @compile -XDignore.symbol.file CustomLogManagerTest.java CustomLogManager.java
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册