You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2012/10/10 18:29:56 UTC

svn commit: r1396675 - in /logging/log4j/log4j2/trunk/api/src: main/java/org/apache/logging/log4j/LogManager.java test/java/org/apache/logging/log4j/LoggerTest.java

Author: ggregory
Date: Wed Oct 10 16:29:55 2012
New Revision: 1396675

URL: http://svn.apache.org/viewvc?rev=1396675&view=rev
Log:
Add new API: org.apache.logging.log4j.LogManager.getLogger(Object).

Modified:
    logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/LogManager.java
    logging/log4j/log4j2/trunk/api/src/test/java/org/apache/logging/log4j/LoggerTest.java

Modified: logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/LogManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/LogManager.java?rev=1396675&r1=1396674&r2=1396675&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/LogManager.java (original)
+++ logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/LogManager.java Wed Oct 10 16:29:55 2012
@@ -53,7 +53,6 @@ public class LogManager {
     protected LogManager() {
     }
 
-
     /**
      * Scans the classpath to find all logging implementation. Currently, only one will
      * be used but this could be extended to allow multiple implementations to be used.
@@ -125,7 +124,6 @@ public class LogManager {
      * @return The Logger.
      */
     public static Logger getLogger(String name) {
-
         return factory.getContext(LogManager.class.getName(), null, false).getLogger(name);
     }
 
@@ -135,7 +133,16 @@ public class LogManager {
      * @return The Logger.
      */
     public static Logger getLogger(Class<?> clazz) {
-        return factory.getContext(LogManager.class.getName(), null, false).getLogger(clazz.getName());
+        return getLogger(clazz != null ? clazz.getName() : null);
+    }
+
+    /**
+     * Returns a Logger using the fully qualified class name of the value as the Logger name.
+     * @param value The value whose class name should be used as the Logger name.
+     * @return The Logger.
+     */
+    public static Logger getLogger(Object value) {
+        return getLogger(value != null ? value.getClass() : null);
     }
 
     /**
@@ -146,7 +153,6 @@ public class LogManager {
      * @return The Logger.
      */
     protected static Logger getLogger(String fqcn, String name) {
-
         return factory.getContext(fqcn, null, false).getLogger(name);
     }
 

Modified: logging/log4j/log4j2/trunk/api/src/test/java/org/apache/logging/log4j/LoggerTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/api/src/test/java/org/apache/logging/log4j/LoggerTest.java?rev=1396675&r1=1396674&r2=1396675&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/api/src/test/java/org/apache/logging/log4j/LoggerTest.java (original)
+++ logging/log4j/log4j2/trunk/api/src/test/java/org/apache/logging/log4j/LoggerTest.java Wed Oct 10 16:29:55 2012
@@ -17,6 +17,7 @@
 package org.apache.logging.log4j;
 
 import org.apache.logging.log4j.message.StructuredDataMessage;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -135,4 +136,27 @@ public class LoggerTest {
         Logger classLogger = LogManager.getLogger(LoggerTest.class);
         assertNotNull(classLogger);
     }
+
+    public void getLoggerByNullClass() {
+        // Returns a SimpleLogger
+        Assert.assertNotNull(LogManager.getLogger((Class<?>) null));
+    }
+
+    public void getLoggerByNullObject() {
+        // Returns a SimpleLogger
+        Assert.assertNotNull(LogManager.getLogger((Object) null));
+    }
+
+    @Test
+    public void getLoggerByNullString() {
+        // Returns a SimpleLogger
+        Assert.assertNotNull(LogManager.getLogger((String) null));
+    }
+
+    @Test
+    public void getLoggerByObject() {
+        Logger classLogger = LogManager.getLogger(this);
+        assertNotNull(classLogger);
+        assertEquals(classLogger, LogManager.getLogger(LoggerTest.class));
+    }
 }