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;
+ }
+
}