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/10 08:44:08 UTC

[5/6] git commit: Implement more JUL Logger methods.

Implement more JUL Logger methods.

  - Prevents need to create LogRecord objects for every Message.


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

Branch: refs/heads/master
Commit: 6944f949a0eadd0792c3d53ec8586549bc5185c8
Parents: 2d1c0f8
Author: Matt Sicker <ma...@apache.org>
Authored: Wed Sep 10 01:43:46 2014 -0500
Committer: Matt Sicker <ma...@apache.org>
Committed: Wed Sep 10 01:43:46 2014 -0500

----------------------------------------------------------------------
 .../org/apache/logging/log4j/jul/ApiLogger.java | 165 +++++++++++++++----
 1 file changed, 135 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6944f949/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java
----------------------------------------------------------------------
diff --git a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java
index fd8da21..e213076 100644
--- a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java
+++ b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java
@@ -22,7 +22,6 @@ import java.util.logging.Level;
 import java.util.logging.LogRecord;
 import java.util.logging.Logger;
 
-import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.spi.ExtendedLogger;
 
@@ -42,33 +41,13 @@ import org.apache.logging.log4j.spi.ExtendedLogger;
  */
 public class ApiLogger extends Logger {
 
-    private static final String FQCN = java.util.logging.Logger.class.getName();
-
-    private static final String PREFIX = "log4j.jul.";
-
-    /**
-     * The {@link org.apache.logging.log4j.ThreadContext} key where the value of {@link java.util.logging.LogRecord#getThreadID()} will be stored.
-     */
-    public static final String THREAD_ID = PREFIX + "threadID";
-
-    /**
-     * The {@link org.apache.logging.log4j.ThreadContext} key where the value of {@link java.util.logging.LogRecord#getSequenceNumber()} will be stored.
-     */
-    public static final String SEQUENCE_NUMBER = PREFIX + "sequenceNumber";
-
-    /**
-     * The {@link org.apache.logging.log4j.ThreadContext} key where the name of the {@link java.util.logging.Level} will be stored. This is particularly useful
-     * for custom Level implementations as well as for obtaining the exact Level that was used rather than the
-     * equivalent Log4j {@link org.apache.logging.log4j.Level}.
-     */
-    public static final String LEVEL = PREFIX + "level";
-
-    private final ExtendedLogger logger;
+    private final WrappedLogger logger;
+    private static final String FQCN = ApiLogger.class.getName();
 
     ApiLogger(final ExtendedLogger logger) {
         super(logger.getName(), null);
         super.setLevel(LevelTranslator.toJavaLevel(logger.getLevel()));
-        this.logger = logger;
+        this.logger = new WrappedLogger(logger);
     }
 
     @Override
@@ -76,16 +55,10 @@ public class ApiLogger extends Logger {
         if (isFiltered(record)) {
             return;
         }
-        ThreadContext.put(THREAD_ID, Integer.toString(record.getThreadID()));
-        ThreadContext.put(SEQUENCE_NUMBER, Long.toString(record.getSequenceNumber()));
-        ThreadContext.put(LEVEL, record.getLevel().getName());
         final org.apache.logging.log4j.Level level = LevelTranslator.toLevel(record.getLevel());
         final Message message = logger.getMessageFactory().newMessage(record.getMessage(), record.getParameters());
         final Throwable thrown = record.getThrown();
         logger.logIfEnabled(FQCN, level, null, message, thrown);
-        ThreadContext.remove(THREAD_ID);
-        ThreadContext.remove(SEQUENCE_NUMBER);
-        ThreadContext.remove(LEVEL);
     }
 
     // support for Logger.getFilter()/Logger.setFilter()
@@ -127,4 +100,136 @@ public class ApiLogger extends Logger {
     public void setParent(final Logger parent) {
         throw new UnsupportedOperationException("Cannot set parent logger");
     }
+
+    @Override
+    public void log(final Level level, final String msg) {
+        logger.log(LevelTranslator.toLevel(level), msg);
+    }
+
+    @Override
+    public void log(final Level level, final String msg, final Object param1) {
+        logger.log(LevelTranslator.toLevel(level), msg, param1);
+    }
+
+    @Override
+    public void log(final Level level, final String msg, final Object[] params) {
+        logger.log(LevelTranslator.toLevel(level), msg, params);
+    }
+
+    @Override
+    public void log(final Level level, final String msg, final Throwable thrown) {
+        logger.log(LevelTranslator.toLevel(level), msg, thrown);
+    }
+
+    @Override
+    public void logp(final Level level, final String sourceClass, final String sourceMethod, final String msg) {
+        log(level, msg);
+    }
+
+    @Override
+    public void logp(final Level level, final String sourceClass, final String sourceMethod, final String msg,
+                     final Object param1) {
+        log(level, msg, param1);
+    }
+
+    @Override
+    public void logp(final Level level, final String sourceClass, final String sourceMethod, final String msg,
+                     final Object[] params) {
+        log(level, msg, params);
+    }
+
+    @Override
+    public void logp(final Level level, final String sourceClass, final String sourceMethod, final String msg,
+                     final Throwable thrown) {
+        log(level, msg, thrown);
+    }
+
+    @Override
+    public void logrb(final Level level, final String sourceClass, final String sourceMethod, final String bundleName,
+                      final String msg) {
+        log(level, msg);
+    }
+
+    @Override
+    public void logrb(final Level level, final String sourceClass, final String sourceMethod, final String bundleName,
+                      final String msg, final Object param1) {
+        log(level, msg, param1);
+    }
+
+    @Override
+    public void logrb(final Level level, final String sourceClass, final String sourceMethod, final String bundleName,
+                      final String msg, final Object[] params) {
+        log(level, msg, params);
+    }
+
+    @Override
+    public void logrb(final Level level, final String sourceClass, final String sourceMethod, final String bundleName,
+                      final String msg, final Throwable thrown) {
+        log(level, msg, thrown);
+    }
+
+    @Override
+    public void entering(final String sourceClass, final String sourceMethod) {
+        logger.entry();
+    }
+
+    @Override
+    public void entering(final String sourceClass, final String sourceMethod, final Object param1) {
+        logger.entry(param1);
+    }
+
+    @Override
+    public void entering(final String sourceClass, final String sourceMethod, final Object[] params) {
+        logger.entry(params);
+    }
+
+    @Override
+    public void exiting(final String sourceClass, final String sourceMethod) {
+        logger.exit();
+    }
+
+    @Override
+    public void exiting(final String sourceClass, final String sourceMethod, final Object result) {
+        logger.exit(result);
+    }
+
+    @Override
+    public void throwing(final String sourceClass, final String sourceMethod, final Throwable thrown) {
+        logger.throwing(thrown);
+    }
+
+    @Override
+    public void severe(final String msg) {
+        logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.ERROR, null, msg);
+    }
+
+    @Override
+    public void warning(final String msg) {
+        logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.WARN, null, msg);
+    }
+
+    @Override
+    public void info(final String msg) {
+        logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.INFO, null, msg);
+    }
+
+    @Override
+    public void config(final String msg) {
+        logger.logIfEnabled(FQCN, LevelTranslator.CONFIG, null, msg);
+    }
+
+    @Override
+    public void fine(final String msg) {
+        logger.logIfEnabled(FQCN, LevelTranslator.FINE, null, msg);
+    }
+
+    @Override
+    public void finer(final String msg) {
+        logger.logIfEnabled(FQCN, LevelTranslator.FINER, null, msg);
+    }
+
+    @Override
+    public void finest(final String msg) {
+        logger.logIfEnabled(FQCN, LevelTranslator.FINEST, null, msg);
+    }
 }