You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2014/09/08 00:39:07 UTC

[28/32] git commit: Disable unsupported methods in ApiLogger.

Disable unsupported methods in ApiLogger.


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/1edacfa6
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/1edacfa6
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/1edacfa6

Branch: refs/heads/master
Commit: 1edacfa6fe72defabbbf8132bc6a344fc731045a
Parents: 2423e44
Author: Matt Sicker <ma...@apache.org>
Authored: Sun Sep 7 17:04:38 2014 -0500
Committer: Matt Sicker <ma...@apache.org>
Committed: Sun Sep 7 17:04:38 2014 -0500

----------------------------------------------------------------------
 .../org/apache/logging/log4j/jdk/ApiLogger.java | 30 ++++++++++++++++++++
 .../apache/logging/log4j/jdk/CoreLogger.java    |  2 +-
 2 files changed, 31 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1edacfa6/log4j-jul/src/main/java/org/apache/logging/log4j/jdk/ApiLogger.java
----------------------------------------------------------------------
diff --git a/log4j-jul/src/main/java/org/apache/logging/log4j/jdk/ApiLogger.java b/log4j-jul/src/main/java/org/apache/logging/log4j/jdk/ApiLogger.java
index 6beffc9..c3d3ff9 100644
--- a/log4j-jul/src/main/java/org/apache/logging/log4j/jdk/ApiLogger.java
+++ b/log4j-jul/src/main/java/org/apache/logging/log4j/jdk/ApiLogger.java
@@ -32,6 +32,8 @@ import org.apache.logging.log4j.spi.ExtendedLogger;
  * Consult the documentation for your Log4j Provider for more details.
  * <p>Note that the methods {@link #getParent()} and {@link #setLevel(java.util.logging.Level)} are not supported by
  * this implementation. If you need support for these methods, then you'll need to use log4j-core.</p>
+ * <p>Also note that {@link #setParent(java.util.logging.Logger)} is explicitly unsupported. Parent loggers are
+ * determined using the syntax of the logger name; not through an arbitrary graph of loggers.</p>
  */
 public class ApiLogger extends Logger {
 
@@ -97,4 +99,32 @@ public class ApiLogger extends Logger {
         return logger.getName();
     }
 
+    @Override
+    public void setLevel(final Level newLevel) throws SecurityException {
+        throw new UnsupportedOperationException("Cannot set level through log4j-api");
+    }
+
+    /**
+     * Provides access to {@link Logger#setLevel(java.util.logging.Level)}. This method should only be used by child
+     * classes.
+     *
+     * @see Logger#setLevel(java.util.logging.Level)
+     */
+    protected void doSetLevel(final Level newLevel) throws SecurityException {
+        super.setLevel(newLevel);
+    }
+
+    @Override
+    public Logger getParent() {
+        throw new UnsupportedOperationException("Cannot get parent logger through log4j-api");
+    }
+
+    /**
+     * Unsupported operation.
+     * @throws UnsupportedOperationException always
+     */
+    @Override
+    public void setParent(final Logger parent) {
+        throw new UnsupportedOperationException("Cannot set parent logger");
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1edacfa6/log4j-jul/src/main/java/org/apache/logging/log4j/jdk/CoreLogger.java
----------------------------------------------------------------------
diff --git a/log4j-jul/src/main/java/org/apache/logging/log4j/jdk/CoreLogger.java b/log4j-jul/src/main/java/org/apache/logging/log4j/jdk/CoreLogger.java
index 60ff82f..ddf2aaa 100644
--- a/log4j-jul/src/main/java/org/apache/logging/log4j/jdk/CoreLogger.java
+++ b/log4j-jul/src/main/java/org/apache/logging/log4j/jdk/CoreLogger.java
@@ -44,7 +44,7 @@ public class CoreLogger extends ApiLogger {
     @Override
     public void setLevel(final Level level) throws SecurityException {
         logger.setLevel(Levels.toLevel(level));
-        super.setLevel(level);
+        super.doSetLevel(level);
     }
 
     /**