Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi/osgi/src/org/osgi/service/log/admin/LoggerContext.java')
-rw-r--r--bundles/org.eclipse.osgi/osgi/src/org/osgi/service/log/admin/LoggerContext.java75
1 files changed, 55 insertions, 20 deletions
diff --git a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/log/admin/LoggerContext.java b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/log/admin/LoggerContext.java
index 33b9e4b6f..a5124e0e6 100644
--- a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/log/admin/LoggerContext.java
+++ b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/log/admin/LoggerContext.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) OSGi Alliance (2016). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2016, 2017). All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,6 +34,38 @@ import org.osgi.service.log.LogLevel;
@ProviderType
public interface LoggerContext {
/**
+ * Logger Context PID.
+ * <p>
+ * If Configuration Admin is present, Logger Context configuration
+ * information in Configuration Admin must be used. The name of the Logger
+ * Context is mapped to a Configuration Admin targeted PID as follows:
+ * <ul>
+ * <li>The root Logger Context, which has no name, is mapped to the PID
+ * {@code org.osgi.service.log.admin}.</li>
+ * <li>A named Logger Context is mapped to a targeted PID by prefixing the
+ * Logger Context's name with {@code org.osgi.service.log.admin|}. For
+ * example, the Logger Context named {@code com.foo.bar} is mapped to the
+ * targeted PID {@code org.osgi.service.log.admin|com.foo.bar}.</li>
+ * </ul>
+ */
+ String LOGGER_CONTEXT_PID = "org.osgi.service.log.admin";
+
+ /**
+ * Framework launching property specifying the default log level of the root
+ * Logger Context.
+ * <p>
+ * The value of this property must be the name of the one of the
+ * {@link LogLevel}s.
+ * <p>
+ * If not specified, or the specified value is not the name of the one of
+ * the {@link LogLevel}s, the default log level of the root Logger Context
+ * is {@link LogLevel#WARN}.
+ *
+ * @see LogLevel
+ */
+ String LOGGER_CONTEXT_DEFAULT_LOGLEVEL = "org.osgi.service.log.admin.loglevel";
+
+ /**
* Returns the name for this Logger Context.
*
* @return The name for this Logger Context. The root Logger Context has no
@@ -48,19 +80,16 @@ public interface LoggerContext {
* The effective log level for a logger name is found by the following
* steps:
* <ol>
- * <li>If the specified logger name is configured with a non-null log level
- * in this Logger Context, return the configured log level.</li>
- * <li>For each ancestor logger name of the specified logger name, if the
- * ancestor logger name is configured with a non-null log level in this
- * Logger Context, return the configured log level.</li>
- * <li>If the specified logger name is configured with a non-null log level
- * in the root Logger Context, return the configured log level.</li>
+ * <li>If the specified logger name is configured with a log level, return
+ * the configured log level.</li>
* <li>For each ancestor logger name of the specified logger name, if the
- * ancestor logger name is configured with a non-null log level in the root
- * Logger Context, return the configured log level.</li>
- * <li>Return {@link LogLevel#WARN} because no non-null log level has been
- * found for the specified logger name or any of its ancestor logger names.
- * </li>
+ * ancestor logger name is configured with a log level, return the
+ * configured log level.</li>
+ * <li>If this Logger Context is named, return the result of calling this
+ * method on the root Logger Context with the specified logger name.</li>
+ * <li>If this Logger Context is the root Logger Context, return the
+ * {@link #LOGGER_CONTEXT_DEFAULT_LOGLEVEL default log level of the root
+ * Logger Context}.</li>
* </ol>
*
* @param name The logger name.
@@ -75,10 +104,10 @@ public interface LoggerContext {
* @return The configured log levels for this Logger Context. The keys are
* the logger names and the values are the log levels. The returned
* map may be empty if no logger names are configured for this
- * Logger Context. The log level value can be {@code null}. The
- * returned map is the property of the caller who can modify the map
- * and use it as input to {@link #setLogLevels(Map)}. The returned
- * map must support all optional Map operations.
+ * Logger Context. The returned map is the property of the caller
+ * who can modify the map and use it as input to
+ * {@link #setLogLevels(Map)}. The returned map must support all
+ * optional Map operations.
*/
Map<String,LogLevel> getLogLevels();
@@ -87,12 +116,18 @@ public interface LoggerContext {
* <p>
* All previous log levels configured for this Logger Context are cleared
* and then the log levels in the specified map are configured.
+ * <p>
+ * The configured log levels for this Logger Context can be set by both this
+ * method and by configuration information in Configuration Admin, if
+ * Configuration Admin is present. The configured log levels for this Logger
+ * Context are based upon the last technique used to update the configured
+ * log levels. This method must not modify or set configuration information
+ * in Configuration Admin.
*
* @param logLevels The log levels to configure for this Logger Context. The
* keys are the logger names and the values are the log levels.
- * The log level value can be {@code null}. The specified map is
- * the property of the caller and this method must not modify or
- * retain the specified map.
+ * The specified map is the property of the caller and this
+ * method must not modify or retain the specified map.
*/
void setLogLevels(Map<String,LogLevel> logLevels);

Back to the top