< prev index next >
src/java.logging/share/classes/java/util/logging/LogManager.java
Print this page
@@ -396,13 +396,11 @@
// Create and retain Logger for the root of the namespace.
owner.addLogger(root);
// For backward compatibility: add any handlers configured using
// ".handlers"
- owner.createLoggerHandlers("", ".handlers")
- .stream()
- .forEach(root::addHandler);
+ addInitialRootLoggerHandlers();
// Initialize level if not yet initialized
if (!root.isLevelInitialized()) {
root.setLevel(defaultLevel);
}
@@ -993,11 +991,28 @@
closeOnResetLoggers.addIfAbsent(CloseOnReset.create(logger));
}
}
}
- private List<Handler> createLoggerHandlers(final String name, final String handlersPropertyName)
+ /**
+ * Invoked when the root logger is initialized.
+ * This method is called only once, when the root logger is initialized.
+ * The default implementation of this method will instantiate
+ * any handlers defined by the {@code ".handlers"} property and add
+ * them to the root logger.
+ * <p>
+ * Subclasses of {@code LogManager} may override this method
+ * to turn off this behavior, by providing an empty method body.
+ */
+ protected void addInitialRootLoggerHandlers() {
+ createLoggerHandlers("", ".handlers")
+ .stream()
+ .forEach(rootLogger::addHandler);
+ }
+
+ private List<Handler> createLoggerHandlers(final String name,
+ final String handlersPropertyName)
{
String names[] = parseClassNames(handlersPropertyName);
List<Handler> handlers = new ArrayList<>(names.length);
for (String type : names) {
try {
< prev index next >