You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/05/22 13:19:01 UTC

svn commit: r659076 - in /incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j: SlingLogger.java SlingLoggerLevel.java

Author: fmeschbe
Date: Thu May 22 04:19:01 2008
New Revision: 659076

URL: http://svn.apache.org/viewvc?rev=659076&view=rev
Log:
SLING-469 Applying patch supplied by Niklas Gustavsson to have the SlingLogger
also be a LocationAwareLogger

Modified:
    incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j/SlingLogger.java
    incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j/SlingLoggerLevel.java

Modified: incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j/SlingLogger.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j/SlingLogger.java?rev=659076&r1=659075&r2=659076&view=diff
==============================================================================
--- incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j/SlingLogger.java (original)
+++ incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j/SlingLogger.java Thu May 22 04:19:01 2008
@@ -25,11 +25,11 @@
 import java.text.MessageFormat;
 import java.util.Date;
 
-import org.slf4j.Logger;
 import org.slf4j.Marker;
 import org.slf4j.helpers.MessageFormatter;
+import org.slf4j.spi.LocationAwareLogger;
 
-public class SlingLogger implements Logger {
+public class SlingLogger implements LocationAwareLogger {
 
     private final String name;
 
@@ -58,6 +58,11 @@
 
     private void log(Marker marker, SlingLoggerLevel level, String msg,
             Throwable t) {
+        log(marker, null, level, msg, t);
+    }
+
+    private void log(Marker marker, String fqcn, SlingLoggerLevel level,
+            String msg, Throwable t) {
         StringWriter writer = new StringWriter();
 
         // create the formatted log line; use a local copy because the field
@@ -66,7 +71,7 @@
         synchronized (myFormat) {
             myFormat.format(new Object[] { new Date(), marker,
                 Thread.currentThread().getName(), getName(), level.toString(),
-                msg }, writer.getBuffer(), new FieldPosition(0));
+                msg, fqcn }, writer.getBuffer(), new FieldPosition(0));
         }
 
         // marker indicating whether a line terminator is to be written after
@@ -102,22 +107,23 @@
                 }
 
             } catch (IOException ioe) {
-                SlingLoggerFactory.internalFailure("Failed logging message: " + message, ioe);
+                SlingLoggerFactory.internalFailure("Failed logging message: "
+                    + message, ioe);
             }
         }
     }
 
     // ---------- Log Level support --------------------------------------------
 
-    public void setLogLevel(String levelString ) {
+    public void setLogLevel(String levelString) {
         try {
             // ensure upper case level name
             levelString = levelString.toUpperCase();
-            
+
             // try to convert to a SlingLoggerLevel instance,
             // throws if the string is invalid
             SlingLoggerLevel level = SlingLoggerLevel.valueOf(levelString);
-            
+
             // finally set the level
             this.setLogLevel(level);
         } catch (Exception e) {
@@ -512,4 +518,11 @@
     public boolean isErrorEnabled(Marker marker) {
         return isLevel(SlingLoggerLevel.ERROR);
     }
+
+    public void log(Marker marker, String fqcn, int level, String message,
+            Throwable t) {
+        SlingLoggerLevel slingLevel = SlingLoggerLevel.fromSlf4jLevel(level);
+
+        log(marker, fqcn, slingLevel, message, t);
+    }
 }

Modified: incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j/SlingLoggerLevel.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j/SlingLoggerLevel.java?rev=659076&r1=659075&r2=659076&view=diff
==============================================================================
--- incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j/SlingLoggerLevel.java (original)
+++ incubator/sling/trunk/commons/log/src/main/java/org/apache/sling/commons/log/slf4j/SlingLoggerLevel.java Thu May 22 04:19:01 2008
@@ -18,12 +18,38 @@
  */
 package org.apache.sling.commons.log.slf4j;
 
+import org.slf4j.spi.LocationAwareLogger;
+
 public enum SlingLoggerLevel {
 
     TRACE,
     DEBUG,
     INFO,
     WARN,
-    ERROR
-    
+    ERROR;
+
+    /**
+     * Translates SLF4J logging levels into {@link SlingLoggerLevel}
+     * 
+     * @param level The SLF4J logging level
+     * @return The matching {@link SlingLoggerLevel}
+     */
+    public static SlingLoggerLevel fromSlf4jLevel(int level) {
+        SlingLoggerLevel slingLevel;
+
+        if (level < LocationAwareLogger.DEBUG_INT) {
+            slingLevel = SlingLoggerLevel.TRACE;
+        } else if (level < LocationAwareLogger.INFO_INT) {
+            slingLevel = SlingLoggerLevel.DEBUG;
+        } else if (level < LocationAwareLogger.WARN_INT) {
+            slingLevel = SlingLoggerLevel.INFO;
+        } else if (level < LocationAwareLogger.ERROR_INT) {
+            slingLevel = SlingLoggerLevel.WARN;
+        } else {
+            slingLevel = SlingLoggerLevel.ERROR;
+        }
+
+        return slingLevel;
+    }
+
 }