Index: log4j-api/src/test/java/org/apache/logging/log4j/AbstractLoggerTest.java =================================================================== --- log4j-api/src/test/java/org/apache/logging/log4j/AbstractLoggerTest.java (revision 1577019) +++ log4j-api/src/test/java/org/apache/logging/log4j/AbstractLoggerTest.java (working copy) @@ -16,6 +16,9 @@ */ package org.apache.logging.log4j; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.ObjectMessage; import org.apache.logging.log4j.message.ParameterizedMessage; @@ -23,8 +26,6 @@ import org.apache.logging.log4j.spi.AbstractLogger; import org.junit.Test; -import static org.junit.Assert.*; - /** * */ @@ -86,7 +87,7 @@ }; @Override - protected boolean isEnabled(final Level level, final Marker marker, final Message data, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final Message data, final Throwable t) { assertTrue("Incorrect Level. Expected " + currentLevel + ", actual " + level, level.equals(currentLevel)); if (marker == null) { if (currentEvent.markerName != null) { @@ -131,27 +132,27 @@ } @Override - protected boolean isEnabled(final Level level, final Marker marker, final Object data, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final Object data, final Throwable t) { return isEnabled(level, marker, new ObjectMessage(data), t); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String data) { + public boolean isEnabled(final Level level, final Marker marker, final String data) { return isEnabled(level, marker, new SimpleMessage(data), null); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String data, final Object... p1) { + public boolean isEnabled(final Level level, final Marker marker, final String data, final Object... p1) { return isEnabled(level, marker, new ParameterizedMessage(data, p1), null); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String data, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final String data, final Throwable t) { return isEnabled(level, marker, new SimpleMessage(data), t); } @Override - public void log(final Marker marker, final String fqcn, final Level level, final Message data, final Throwable t) { + public void logMessage(final String fqcn, final Level level, final Marker marker, final Message data, final Throwable t) { assertTrue("Incorrect Level. Expected " + currentLevel + ", actual " + level, level.equals(currentLevel)); if (marker == null) { if (currentEvent.markerName != null) { Index: log4j-api/src/test/java/org/apache/logging/log4j/TestLoggerContext.java =================================================================== --- log4j-api/src/test/java/org/apache/logging/log4j/TestLoggerContext.java (revision 1577019) +++ log4j-api/src/test/java/org/apache/logging/log4j/TestLoggerContext.java (working copy) @@ -18,6 +18,7 @@ import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.spi.LoggerContext; +import org.apache.logging.log4j.spi.LoggerProvider; import java.util.HashMap; import java.util.Map; @@ -26,20 +27,20 @@ * */ public class TestLoggerContext implements LoggerContext { - private final Map map = new HashMap(); + private final Map map = new HashMap(); @Override - public Logger getLogger(final String name) { + public LoggerProvider getLogger(final String name) { if (map.containsKey(name)) { return map.get(name); } - final Logger logger = new TestLogger(name); + final LoggerProvider logger = new TestLogger(name); map.put(name, logger); return logger; } @Override - public Logger getLogger(final String name, final MessageFactory messageFactory) { + public LoggerProvider getLogger(final String name, final MessageFactory messageFactory) { return new TestLogger(name, messageFactory); } Index: log4j-api/src/test/java/org/apache/logging/log4j/LoggerTest.java =================================================================== --- log4j-api/src/test/java/org/apache/logging/log4j/LoggerTest.java (revision 1577019) +++ log4j-api/src/test/java/org/apache/logging/log4j/LoggerTest.java (working copy) @@ -272,42 +272,6 @@ } @Test - public void getStream() { - final PrintWriter stream = logger.printWriter(Level.DEBUG); - stream.println("println"); - stream.print("print followed by println"); - stream.println(); - stream.println("multiple\nlines"); - stream.println(); // verify blank log message - stream.print("print embedded newline\n"); - stream.print("\r\n"); // verify windows EOL works - stream.print("Last Line without newline"); - stream.close(); - assertEquals(8, results.size()); - assertEquals("msg 1", " DEBUG println", results.get(0)); - assertEquals("msg 2", " DEBUG print followed by println", results.get(1)); - assertEquals("msg 3", " DEBUG multiple", results.get(2)); - assertEquals("msg 4", " DEBUG lines", results.get(3)); - assertEquals("msg 5 should be blank-ish", " DEBUG ", results.get(4)); - assertEquals("msg 6", " DEBUG print embedded newline", results.get(5)); - assertEquals("msg 7 should be blank-ish", " DEBUG ", results.get(6)); - assertEquals("msg 8 Last line", " DEBUG Last Line without newline", results.get(7)); - } - - @Test - public void getStream_Marker() { - final PrintWriter stream = logger.printWriter(MarkerManager.getMarker("HI"), Level.INFO); - stream.println("println"); - stream.print("print with embedded newline\n"); - stream.println("last line"); - stream.close(); - assertEquals(3, results.size()); - assertEquals("println 1", "HI INFO println", results.get(0)); - assertEquals("print with embedded newline", "HI INFO print with embedded newline", results.get(1)); - assertEquals("println 2", "HI INFO last line", results.get(2)); - } - - @Test public void isAllEnabled() { assertTrue("Incorrect level", logger.isEnabled(Level.ALL)); } Index: log4j-api/src/test/java/org/apache/logging/log4j/TestLogger.java =================================================================== --- log4j-api/src/test/java/org/apache/logging/log4j/TestLogger.java (revision 1577019) +++ log4j-api/src/test/java/org/apache/logging/log4j/TestLogger.java (working copy) @@ -52,7 +52,7 @@ } @Override - public void log(final Marker marker, final String fqcn, final Level level, final Message msg, final Throwable throwable) { + public void logMessage(final String fqcn, final Level level, final Marker marker, final Message msg, final Throwable throwable) { final StringBuilder sb = new StringBuilder(); if (marker != null) { sb.append(marker); @@ -85,28 +85,28 @@ } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String msg) { + public boolean isEnabled(final Level level, final Marker marker, final String msg) { return true; } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String msg, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final String msg, final Throwable t) { return true; } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String msg, final Object... p1) { + public boolean isEnabled(final Level level, final Marker marker, final String msg, final Object... p1) { return true; } @Override - protected boolean isEnabled(final Level level, final Marker marker, final Object msg, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final Object msg, final Throwable t) { return true; } @Override - protected boolean isEnabled(final Level level, final Marker marker, final Message msg, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final Message msg, final Throwable t) { return true; } } Index: log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java =================================================================== --- log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java (revision 1577019) +++ log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java (working copy) @@ -20,7 +20,6 @@ import java.io.Serializable; import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.MarkerManager; import org.apache.logging.log4j.message.Message; @@ -32,7 +31,7 @@ /** * Base implementation of a Logger. It is highly recommended that any Logger implementation extend this class. */ -public abstract class AbstractLogger implements Logger, Serializable { +public abstract class AbstractLogger implements LoggerProvider, Serializable { private static final long serialVersionUID = 2L; @@ -85,7 +84,7 @@ * @param logger The logger to check * @param messageFactory The message factory to check. */ - public static void checkMessageFactory(final Logger logger, final MessageFactory messageFactory) { + public static void checkMessageFactory(final LoggerProvider logger, final MessageFactory messageFactory) { final String name = logger.getName(); final MessageFactory loggerMessageFactory = logger.getMessageFactory(); if (messageFactory != null && !loggerMessageFactory.equals(messageFactory)) { @@ -136,6 +135,18 @@ } /** + * Logs a Throwable at the {@link Level#ERROR ERROR} level.. + * + * @param t The Throwable. + */ + @Override + public void catching(final Throwable t) { + if (isEnabled(Level.ERROR, CATCHING_MARKER, (Object) null, null)) { + logMessage(FQCN, Level.ERROR, CATCHING_MARKER, catchingMsg(t), t); + } + } + + /** * Logs a Throwable that has been caught. * * @param level The logging Level. @@ -155,18 +166,12 @@ */ protected void catching(final String fqcn, final Level level, final Throwable t) { if (isEnabled(level, CATCHING_MARKER, (Object) null, null)) { - log(CATCHING_MARKER, fqcn, level, messageFactory.newMessage(CATCHING), t); + logMessage(fqcn, level, CATCHING_MARKER, catchingMsg(t), t); } } - /** - * Logs a Throwable at the {@link Level#ERROR ERROR} level.. - * - * @param t The Throwable. - */ - @Override - public void catching(final Throwable t) { - catching(FQCN, Level.ERROR, t); + protected Message catchingMsg(final Throwable t) { + return messageFactory.newMessage(CATCHING); } private MessageFactory createDefaultMessageFactory() { @@ -187,9 +192,7 @@ */ @Override public void debug(final Marker marker, final Message msg) { - if (isEnabled(Level.DEBUG, marker, msg, null)) { - log(marker, FQCN, Level.DEBUG, msg, null); - } + log(FQCN, Level.DEBUG, marker, msg, null); } /** @@ -201,9 +204,7 @@ */ @Override public void debug(final Marker marker, final Message msg, final Throwable t) { - if (isEnabled(Level.DEBUG, marker, msg, t)) { - log(marker, FQCN, Level.DEBUG, msg, t); - } + log(FQCN, Level.DEBUG, marker, msg, t); } /** @@ -214,9 +215,7 @@ */ @Override public void debug(final Marker marker, final Object message) { - if (isEnabled(Level.DEBUG, marker, message, null)) { - log(marker, FQCN, Level.DEBUG, messageFactory.newMessage(message), null); - } + log(FQCN, Level.DEBUG, marker, message, null); } /** @@ -229,9 +228,7 @@ */ @Override public void debug(final Marker marker, final Object message, final Throwable t) { - if (isEnabled(Level.DEBUG, marker, message, t)) { - log(marker, FQCN, Level.DEBUG, messageFactory.newMessage(message), t); - } + log(FQCN, Level.DEBUG, marker, message, t); } /** @@ -242,9 +239,7 @@ */ @Override public void debug(final Marker marker, final String message) { - if (isEnabled(Level.DEBUG, marker, message)) { - log(marker, FQCN, Level.DEBUG, messageFactory.newMessage(message), null); - } + log(FQCN, Level.DEBUG, marker, message, (Throwable) null); } /** @@ -256,10 +251,7 @@ */ @Override public void debug(final Marker marker, final String message, final Object... params) { - if (isEnabled(Level.DEBUG, marker, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(marker, FQCN, Level.DEBUG, msg, msg.getThrowable()); - } + log(FQCN, Level.DEBUG, marker, message, params); } /** @@ -272,9 +264,7 @@ */ @Override public void debug(final Marker marker, final String message, final Throwable t) { - if (isEnabled(Level.DEBUG, marker, message, t)) { - log(marker, FQCN, Level.DEBUG, messageFactory.newMessage(message), t); - } + log(FQCN, Level.DEBUG, marker, message, t); } /** @@ -284,9 +274,7 @@ */ @Override public void debug(final Message msg) { - if (isEnabled(Level.DEBUG, null, msg, null)) { - log(null, FQCN, Level.DEBUG, msg, null); - } + log(FQCN, Level.DEBUG, null, msg, null); } /** @@ -297,9 +285,7 @@ */ @Override public void debug(final Message msg, final Throwable t) { - if (isEnabled(Level.DEBUG, null, msg, t)) { - log(null, FQCN, Level.DEBUG, msg, t); - } + log(FQCN, Level.DEBUG, null, msg, t); } /** @@ -309,9 +295,7 @@ */ @Override public void debug(final Object message) { - if (isEnabled(Level.DEBUG, null, message, null)) { - log(null, FQCN, Level.DEBUG, messageFactory.newMessage(message), null); - } + log(FQCN, Level.DEBUG, null, messageFactory.newMessage(message), null); } /** @@ -323,9 +307,7 @@ */ @Override public void debug(final Object message, final Throwable t) { - if (isEnabled(Level.DEBUG, null, message, t)) { - log(null, FQCN, Level.DEBUG, messageFactory.newMessage(message), t); - } + log(FQCN, Level.DEBUG, null, message, t); } /** @@ -335,9 +317,7 @@ */ @Override public void debug(final String message) { - if (isEnabled(Level.DEBUG, null, message)) { - log(null, FQCN, Level.DEBUG, messageFactory.newMessage(message), null); - } + log(FQCN, Level.DEBUG, null, message, (Throwable) null); } /** @@ -348,10 +328,7 @@ */ @Override public void debug(final String message, final Object... params) { - if (isEnabled(Level.DEBUG, null, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(null, FQCN, Level.DEBUG, msg, msg.getThrowable()); - } + log(FQCN, Level.DEBUG, null, message, params); } /** @@ -363,9 +340,7 @@ */ @Override public void debug(final String message, final Throwable t) { - if (isEnabled(Level.DEBUG, null, message, t)) { - log(null, FQCN, Level.DEBUG, messageFactory.newMessage(message), t); - } + log(FQCN, Level.DEBUG, null, message, t); } /** @@ -394,11 +369,11 @@ */ protected void entry(final String fqcn, final Object... params) { if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { - log(ENTRY_MARKER, fqcn, Level.TRACE, entryMsg(params.length, params), null); + log(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(params.length, params), null); } } - private Message entryMsg(final int count, final Object... params) { + protected Message entryMsg(final int count, final Object... params) { if (count == 0) { return messageFactory.newMessage("entry"); } @@ -426,9 +401,7 @@ */ @Override public void error(final Marker marker, final Message msg) { - if (isEnabled(Level.ERROR, marker, msg, null)) { - log(marker, FQCN, Level.ERROR, msg, null); - } + log(FQCN, Level.ERROR, marker, msg, null); } /** @@ -440,9 +413,7 @@ */ @Override public void error(final Marker marker, final Message msg, final Throwable t) { - if (isEnabled(Level.ERROR, marker, msg, t)) { - log(marker, FQCN, Level.ERROR, msg, t); - } + log(FQCN, Level.ERROR, marker, msg, t); } /** @@ -453,9 +424,7 @@ */ @Override public void error(final Marker marker, final Object message) { - if (isEnabled(Level.ERROR, marker, message, null)) { - log(marker, FQCN, Level.ERROR, messageFactory.newMessage(message), null); - } + log(FQCN, Level.ERROR, marker, message, null); } /** @@ -468,9 +437,7 @@ */ @Override public void error(final Marker marker, final Object message, final Throwable t) { - if (isEnabled(Level.ERROR, marker, message, t)) { - log(marker, FQCN, Level.ERROR, messageFactory.newMessage(message), t); - } + log(FQCN, Level.ERROR, marker, message, t); } /** @@ -481,9 +448,7 @@ */ @Override public void error(final Marker marker, final String message) { - if (isEnabled(Level.ERROR, marker, message)) { - log(marker, FQCN, Level.ERROR, messageFactory.newMessage(message), null); - } + log(FQCN, Level.ERROR, marker, message, (Throwable) null); } /** @@ -495,10 +460,7 @@ */ @Override public void error(final Marker marker, final String message, final Object... params) { - if (isEnabled(Level.ERROR, marker, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(marker, FQCN, Level.ERROR, msg, msg.getThrowable()); - } + log(FQCN, Level.ERROR, marker, message, params); } /** @@ -511,9 +473,7 @@ */ @Override public void error(final Marker marker, final String message, final Throwable t) { - if (isEnabled(Level.ERROR, marker, message, t)) { - log(marker, FQCN, Level.ERROR, messageFactory.newMessage(message), t); - } + log(FQCN, Level.ERROR, marker, message, t); } /** @@ -523,9 +483,7 @@ */ @Override public void error(final Message msg) { - if (isEnabled(Level.ERROR, null, msg, null)) { - log(null, FQCN, Level.ERROR, msg, null); - } + log(FQCN, Level.ERROR, null, msg, null); } /** @@ -536,9 +494,7 @@ */ @Override public void error(final Message msg, final Throwable t) { - if (isEnabled(Level.ERROR, null, msg, t)) { - log(null, FQCN, Level.ERROR, msg, t); - } + log(FQCN, Level.ERROR, null, msg, t); } /** @@ -548,9 +504,7 @@ */ @Override public void error(final Object message) { - if (isEnabled(Level.ERROR, null, message, null)) { - log(null, FQCN, Level.ERROR, messageFactory.newMessage(message), null); - } + log(FQCN, Level.ERROR, null, messageFactory.newMessage(message), null); } /** @@ -562,9 +516,7 @@ */ @Override public void error(final Object message, final Throwable t) { - if (isEnabled(Level.ERROR, null, message, t)) { - log(null, FQCN, Level.ERROR, messageFactory.newMessage(message), t); - } + log(FQCN, Level.ERROR, null, message, t); } /** @@ -574,9 +526,7 @@ */ @Override public void error(final String message) { - if (isEnabled(Level.ERROR, null, message)) { - log(null, FQCN, Level.ERROR, messageFactory.newMessage(message), null); - } + log(FQCN, Level.ERROR, null, message, (Throwable) null); } /** @@ -587,10 +537,7 @@ */ @Override public void error(final String message, final Object... params) { - if (isEnabled(Level.ERROR, null, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(null, FQCN, Level.ERROR, msg, msg.getThrowable()); - } + log(FQCN, Level.ERROR, null, message, params); } /** @@ -602,9 +549,7 @@ */ @Override public void error(final String message, final Throwable t) { - if (isEnabled(Level.ERROR, null, message, t)) { - log(null, FQCN, Level.ERROR, messageFactory.newMessage(message), t); - } + log(FQCN, Level.ERROR, null, message, t); } /** @@ -636,11 +581,18 @@ */ protected R exit(final String fqcn, final R result) { if (isEnabled(Level.TRACE, EXIT_MARKER, (Object) null, null)) { - log(EXIT_MARKER, fqcn, Level.TRACE, toExitMsg(result), null); + log(fqcn, Level.TRACE, EXIT_MARKER, exitMsg(result), null); } return result; } + protected Message exitMsg(final Object result) { + if (result == null) { + return messageFactory.newMessage("exit"); + } + return messageFactory.newMessage("exit with(" + result + ")"); + } + /** * Logs a message with the specific Marker at the FATAL level. * @@ -649,9 +601,7 @@ */ @Override public void fatal(final Marker marker, final Message msg) { - if (isEnabled(Level.FATAL, marker, msg, null)) { - log(marker, FQCN, Level.FATAL, msg, null); - } + log(FQCN, Level.FATAL, marker, msg, null); } /** @@ -663,9 +613,7 @@ */ @Override public void fatal(final Marker marker, final Message msg, final Throwable t) { - if (isEnabled(Level.FATAL, marker, msg, t)) { - log(marker, FQCN, Level.FATAL, msg, t); - } + log(FQCN, Level.FATAL, marker, msg, t); } /** @@ -676,9 +624,7 @@ */ @Override public void fatal(final Marker marker, final Object message) { - if (isEnabled(Level.FATAL, marker, message, null)) { - log(marker, FQCN, Level.FATAL, messageFactory.newMessage(message), null); - } + log(FQCN, Level.FATAL, marker, message, null); } /** @@ -691,9 +637,7 @@ */ @Override public void fatal(final Marker marker, final Object message, final Throwable t) { - if (isEnabled(Level.FATAL, marker, message, t)) { - log(marker, FQCN, Level.FATAL, messageFactory.newMessage(message), t); - } + log(FQCN, Level.FATAL, marker, message, t); } /** @@ -704,9 +648,7 @@ */ @Override public void fatal(final Marker marker, final String message) { - if (isEnabled(Level.FATAL, marker, message)) { - log(marker, FQCN, Level.FATAL, messageFactory.newMessage(message), null); - } + log(FQCN, Level.FATAL, marker, message, (Throwable) null); } /** @@ -718,10 +660,7 @@ */ @Override public void fatal(final Marker marker, final String message, final Object... params) { - if (isEnabled(Level.FATAL, marker, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(marker, FQCN, Level.FATAL, msg, msg.getThrowable()); - } + log(FQCN, Level.FATAL, marker, message, params); } /** @@ -734,9 +673,7 @@ */ @Override public void fatal(final Marker marker, final String message, final Throwable t) { - if (isEnabled(Level.FATAL, marker, message, t)) { - log(marker, FQCN, Level.FATAL, messageFactory.newMessage(message), t); - } + log(FQCN, Level.FATAL, marker, message, t); } /** @@ -746,9 +683,7 @@ */ @Override public void fatal(final Message msg) { - if (isEnabled(Level.FATAL, null, msg, null)) { - log(null, FQCN, Level.FATAL, msg, null); - } + log(FQCN, Level.FATAL, null, msg, null); } /** @@ -759,9 +694,7 @@ */ @Override public void fatal(final Message msg, final Throwable t) { - if (isEnabled(Level.FATAL, null, msg, t)) { - log(null, FQCN, Level.FATAL, msg, t); - } + log(FQCN, Level.FATAL, null, msg, t); } /** @@ -771,9 +704,7 @@ */ @Override public void fatal(final Object message) { - if (isEnabled(Level.FATAL, null, message, null)) { - log(null, FQCN, Level.FATAL, messageFactory.newMessage(message), null); - } + log(FQCN, Level.FATAL, null, messageFactory.newMessage(message), null); } /** @@ -785,9 +716,7 @@ */ @Override public void fatal(final Object message, final Throwable t) { - if (isEnabled(Level.FATAL, null, message, t)) { - log(null, FQCN, Level.FATAL, messageFactory.newMessage(message), t); - } + log(FQCN, Level.FATAL, null, message, t); } /** @@ -797,9 +726,7 @@ */ @Override public void fatal(final String message) { - if (isEnabled(Level.FATAL, null, message)) { - log(null, FQCN, Level.FATAL, messageFactory.newMessage(message), null); - } + log(FQCN, Level.FATAL, null, message, (Throwable) null); } /** @@ -810,10 +737,7 @@ */ @Override public void fatal(final String message, final Object... params) { - if (isEnabled(Level.FATAL, null, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(null, FQCN, Level.FATAL, msg, msg.getThrowable()); - } + log(FQCN, Level.FATAL, null, message, params); } /** @@ -825,9 +749,7 @@ */ @Override public void fatal(final String message, final Throwable t) { - if (isEnabled(Level.FATAL, null, message, t)) { - log(null, FQCN, Level.FATAL, messageFactory.newMessage(message), t); - } + log(FQCN, Level.FATAL, null, message, t); } /** @@ -881,9 +803,7 @@ */ @Override public void info(final Marker marker, final Message msg) { - if (isEnabled(Level.INFO, marker, msg, null)) { - log(marker, FQCN, Level.INFO, msg, null); - } + log(FQCN, Level.INFO, marker, msg, null); } /** @@ -895,9 +815,7 @@ */ @Override public void info(final Marker marker, final Message msg, final Throwable t) { - if (isEnabled(Level.INFO, marker, msg, t)) { - log(marker, FQCN, Level.INFO, msg, t); - } + log(FQCN, Level.INFO, marker, msg, t); } /** @@ -908,9 +826,7 @@ */ @Override public void info(final Marker marker, final Object message) { - if (isEnabled(Level.INFO, marker, message, null)) { - log(marker, FQCN, Level.INFO, messageFactory.newMessage(message), null); - } + log(FQCN, Level.INFO, marker, message, null); } /** @@ -923,9 +839,7 @@ */ @Override public void info(final Marker marker, final Object message, final Throwable t) { - if (isEnabled(Level.INFO, marker, message, t)) { - log(marker, FQCN, Level.INFO, messageFactory.newMessage(message), t); - } + log(FQCN, Level.INFO, marker, message, t); } /** @@ -936,9 +850,7 @@ */ @Override public void info(final Marker marker, final String message) { - if (isEnabled(Level.INFO, marker, message)) { - log(marker, FQCN, Level.INFO, messageFactory.newMessage(message), null); - } + log(FQCN, Level.INFO, marker, message, (Throwable) null); } /** @@ -950,10 +862,7 @@ */ @Override public void info(final Marker marker, final String message, final Object... params) { - if (isEnabled(Level.INFO, marker, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(marker, FQCN, Level.INFO, msg, msg.getThrowable()); - } + log(FQCN, Level.INFO, marker, message, params); } /** @@ -966,9 +875,7 @@ */ @Override public void info(final Marker marker, final String message, final Throwable t) { - if (isEnabled(Level.INFO, marker, message, t)) { - log(marker, FQCN, Level.INFO, messageFactory.newMessage(message), t); - } + log(FQCN, Level.INFO, marker, message, t); } /** @@ -978,9 +885,7 @@ */ @Override public void info(final Message msg) { - if (isEnabled(Level.INFO, null, msg, null)) { - log(null, FQCN, Level.INFO, msg, null); - } + log(FQCN, Level.INFO, null, msg, null); } /** @@ -991,9 +896,7 @@ */ @Override public void info(final Message msg, final Throwable t) { - if (isEnabled(Level.INFO, null, msg, t)) { - log(null, FQCN, Level.INFO, msg, t); - } + log(FQCN, Level.INFO, null, msg, t); } /** @@ -1003,9 +906,7 @@ */ @Override public void info(final Object message) { - if (isEnabled(Level.INFO, null, message, null)) { - log(null, FQCN, Level.INFO, messageFactory.newMessage(message), null); - } + log(FQCN, Level.INFO, null, messageFactory.newMessage(message), null); } /** @@ -1017,9 +918,7 @@ */ @Override public void info(final Object message, final Throwable t) { - if (isEnabled(Level.INFO, null, message, t)) { - log(null, FQCN, Level.INFO, messageFactory.newMessage(message), t); - } + log(FQCN, Level.INFO, null, message, t); } /** @@ -1029,9 +928,7 @@ */ @Override public void info(final String message) { - if (isEnabled(Level.INFO, null, message)) { - log(null, FQCN, Level.INFO, messageFactory.newMessage(message), null); - } + log(FQCN, Level.INFO, null, message, (Throwable) null); } /** @@ -1042,10 +939,7 @@ */ @Override public void info(final String message, final Object... params) { - if (isEnabled(Level.INFO, null, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(null, FQCN, Level.INFO, msg, msg.getThrowable()); - } + log(FQCN, Level.INFO, null, message, params); } /** @@ -1057,9 +951,7 @@ */ @Override public void info(final String message, final Throwable t) { - if (isEnabled(Level.INFO, null, message, t)) { - log(null, FQCN, Level.INFO, messageFactory.newMessage(message), t); - } + log(FQCN, Level.INFO, null, message, t); } /** @@ -1097,64 +989,19 @@ return isEnabled(level, null, (Object) null, null); } - @Override - public boolean isEnabled(final Level level, final Marker marker) { - return isEnabled(level, marker, (Object) null, null); - } - - /** - * Determine if logging is enabled. - * - * @param level The logging Level to check. - * @param marker A Marker or null. - * @param data The Message. - * @param t A Throwable. - * @return True if logging is enabled, false otherwise. - */ - protected abstract boolean isEnabled(Level level, Marker marker, Message data, Throwable t); - - /** - * Determine if logging is enabled. - * - * @param level The logging Level to check. - * @param marker A Marker or null. - * @param data The message. - * @param t A Throwable. - * @return True if logging is enabled, false otherwise. - */ - protected abstract boolean isEnabled(Level level, Marker marker, Object data, Throwable t); - - /** - * Determine if logging is enabled. - * - * @param level The logging Level to check. - * @param marker A Marker or null. - * @param data The message. - * @return True if logging is enabled, false otherwise. - */ - protected abstract boolean isEnabled(Level level, Marker marker, String data); - - /** - * Determine if logging is enabled. - * - * @param level The logging Level to check. - * @param marker A Marker or null. - * @param data The message. - * @param p1 The parameters. - * @return True if logging is enabled, false otherwise. - */ - protected abstract boolean isEnabled(Level level, Marker marker, String data, Object... p1); - /** - * Determine if logging is enabled. + * Checks whether this Logger is enabled for the the given Level. + *

+ * Note that passing in {@link Level#OFF OFF} always returns {@code true}. + *

* - * @param level The logging Level to check. + * @param level the level to check * @param marker A Marker or null. - * @param data The message. - * @param t A Throwable. - * @return True if logging is enabled, false otherwise. + * @return boolean - {@code true} if this Logger is enabled for level, {@code false} otherwise. */ - protected abstract boolean isEnabled(Level level, Marker marker, String data, Throwable t); + public boolean isEnabled(final Level level, final Marker marker) { + return isEnabled(level, marker, (Object) null, null); + } /** * Checks whether this Logger is enabled for the {@link Level#ERROR ERROR} Level. @@ -1272,9 +1119,7 @@ */ @Override public void log(final Level level, final Marker marker, final Message msg) { - if (isEnabled(level, marker, msg, null)) { - log(marker, FQCN, level, msg, null); - } + log(FQCN, level, marker, msg, (Throwable) null); } /** @@ -1287,9 +1132,7 @@ */ @Override public void log(final Level level, final Marker marker, final Message msg, final Throwable t) { - if (isEnabled(level, marker, msg, t)) { - log(marker, FQCN, level, msg, t); - } + log(FQCN, level, marker, msg, t); } /** @@ -1301,9 +1144,7 @@ */ @Override public void log(final Level level, final Marker marker, final Object message) { - if (isEnabled(level, marker, message, null)) { - log(marker, FQCN, level, messageFactory.newMessage(message), null); - } + log(FQCN, level, marker, message, (Throwable) null); } /** @@ -1318,7 +1159,7 @@ @Override public void log(final Level level, final Marker marker, final Object message, final Throwable t) { if (isEnabled(level, marker, message, t)) { - log(marker, FQCN, level, messageFactory.newMessage(message), t); + logMessage(FQCN, level, marker, message, t); } } @@ -1331,9 +1172,7 @@ */ @Override public void log(final Level level, final Marker marker, final String message) { - if (isEnabled(level, marker, message)) { - log(marker, FQCN, level, messageFactory.newMessage(message), null); - } + log(FQCN, level, marker, message, (Throwable) null); } /** @@ -1346,10 +1185,7 @@ */ @Override public void log(final Level level, final Marker marker, final String message, final Object... params) { - if (isEnabled(level, marker, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(marker, FQCN, level, msg, msg.getThrowable()); - } + log(FQCN, level, marker, message, params); } /** @@ -1363,9 +1199,7 @@ */ @Override public void log(final Level level, final Marker marker, final String message, final Throwable t) { - if (isEnabled(level, marker, message, t)) { - log(marker, FQCN, level, messageFactory.newMessage(message), t); - } + log(FQCN, level, marker, message, t); } /** @@ -1376,9 +1210,7 @@ */ @Override public void log(final Level level, final Message msg) { - if (isEnabled(level, null, msg, null)) { - log(null, FQCN, level, msg, null); - } + log(FQCN, level, null, msg, null); } /** @@ -1390,9 +1222,7 @@ */ @Override public void log(final Level level, final Message msg, final Throwable t) { - if (isEnabled(level, null, msg, t)) { - log(null, FQCN, level, msg, t); - } + log(FQCN, level, null, msg, t); } /** @@ -1403,9 +1233,7 @@ */ @Override public void log(final Level level, final Object message) { - if (isEnabled(level, null, message, null)) { - log(null, FQCN, level, messageFactory.newMessage(message), null); - } + log(FQCN, level, null, message, null); } /** @@ -1418,9 +1246,7 @@ */ @Override public void log(final Level level, final Object message, final Throwable t) { - if (isEnabled(level, null, message, t)) { - log(null, FQCN, level, messageFactory.newMessage(message), t); - } + log(FQCN, level, null, message, t); } /** @@ -1431,9 +1257,7 @@ */ @Override public void log(final Level level, final String message) { - if (isEnabled(level, null, message)) { - log(null, FQCN, level, messageFactory.newMessage(message), null); - } + log(FQCN, level, null, message, (Throwable) null); } /** @@ -1445,9 +1269,34 @@ */ @Override public void log(final Level level, final String message, final Object... params) { - if (isEnabled(level, null, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(null, FQCN, level, msg, msg.getThrowable()); + log(FQCN, level, null, message, params); + } + + /** + * Logs a message at the given level including the stack trace of the {@link Throwable} + * t passed as parameter. + * + * @param level the logging level + * @param message the message to log. + * @param t the exception to log, including its stack trace. + */ + @Override + public void log(final Level level, final String message, final Throwable t) { + log(FQCN, level, null, message, t); + } + + /** + * Logs a message with the specific Marker at the given level. + * + * @param level the logging level + * @param marker the marker data specific to this log statement. + * @param msg the message string to be logged + * @param t A Throwable or null. + */ + @Override + public void log(final String fqcn, final Level level, final Marker marker, final Message msg, final Throwable t) { + if (isEnabled(level, marker, msg, t)) { + logMessage(fqcn, level, marker, msg, t); } } @@ -1456,13 +1305,44 @@ * parameter. * * @param level the logging level + * @param marker the marker data specific to this log statement. * @param message the message to log. * @param t the exception to log, including its stack trace. */ @Override - public void log(final Level level, final String message, final Throwable t) { - if (isEnabled(level, null, message, t)) { - log(null, FQCN, level, messageFactory.newMessage(message), t); + public void log(final String fqcn, final Level level, final Marker marker, final Object message, final Throwable t) { + if (isEnabled(level, marker, message, t)) { + logMessage(fqcn, level, marker, message, t); + } + } + + /** + * Logs a message with parameters at the given level. + * + * @param level the logging level + * @param marker the marker data specific to this log statement. + * @param message the message to log. + * @param params parameters to the message. + */ + @Override + public void log(final String fqcn, final Level level, final Marker marker, final String message) { + if (isEnabled(level, marker, message)) { + logMessage(fqcn, level, marker, message); + } + } + + /** + * Logs a message with parameters at the given level. + * + * @param level the logging level + * @param marker the marker data specific to this log statement. + * @param message the message to log. + * @param params parameters to the message. + */ + @Override + public void log(final String fqcn, final Level level, final Marker marker, final String message, final Object... params) { + if (isEnabled(level, marker, message, params)) { + logMessage(fqcn, level, marker, message, params); } } @@ -1475,7 +1355,30 @@ * @param data The Message. * @param t A Throwable or null. */ - public abstract void log(Marker marker, String fqcn, Level level, Message data, Throwable t); + @Override + public void log(final String fqcn, final Level level, final Marker marker, final String message, final Throwable t) { + if (isEnabled(level, marker, message, t)) { + logMessage(fqcn, level, marker, message, t); + } + } + + protected void logMessage(final String fqcn, final Level level, final Marker marker, final Object message, final Throwable t) { + logMessage(fqcn, level, marker, messageFactory.newMessage(message), t); + } + + protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, final Throwable t) { + logMessage(fqcn, level, marker, messageFactory.newMessage(message), t); + } + + protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message) { + final Message msg = messageFactory.newMessage(message); + logMessage(fqcn, level, marker, msg, msg.getThrowable()); + } + + protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, final Object... params) { + final Message msg = messageFactory.newMessage(message, params); + logMessage(fqcn, level, marker, msg, msg.getThrowable()); + } /** * Logs a formatted message using the specified format string and arguments. @@ -1489,7 +1392,7 @@ public void printf(Level level, Marker marker, String format, Object... params) { if (isEnabled(level, marker, format, params)) { Message msg = new StringFormattedMessage(format, params); - log(marker, FQCN, level, msg, msg.getThrowable()); + logMessage(FQCN, level, marker, msg, msg.getThrowable()); } } @@ -1504,7 +1407,7 @@ public void printf(Level level, String format, Object... params) { if (isEnabled(level, null, format, params)) { Message msg = new StringFormattedMessage(format, params); - log(null, FQCN, level, msg, msg.getThrowable()); + logMessage(FQCN, level, null, msg, msg.getThrowable()); } } @@ -1512,58 +1415,44 @@ * Logs a Throwable to be thrown. * * @param the type of the Throwable. - * @param level The logging Level. * @param t The Throwable. * @return the Throwable. */ @Override - public T throwing(final Level level, final T t) { - return throwing(FQCN, level, t); + public T throwing(final T t) { + return throwing(FQCN, Level.ERROR, t); } /** - * Logs a Throwable to be thrown with location information. + * Logs a Throwable to be thrown. * - * @param fqcn The fully qualified class name of the caller. * @param the type of the Throwable. * @param level The logging Level. * @param t The Throwable. * @return the Throwable. */ - protected T throwing(final String fqcn, final Level level, final T t) { - if (isEnabled(level, THROWING_MARKER, (Object) null, null)) { - log(THROWING_MARKER, fqcn, level, messageFactory.newMessage(THROWING), t); - } - return t; + @Override + public T throwing(final Level level, final T t) { + return throwing(FQCN, level, t); } /** * Logs a Throwable to be thrown. * * @param the type of the Throwable. + * @param level The logging Level. * @param t The Throwable. * @return the Throwable. */ - @Override - public T throwing(final T t) { - return throwing(FQCN, Level.ERROR, t); - } - - private Message toExitMsg(final Object result) { - if (result == null) { - return messageFactory.newMessage("exit"); + protected T throwing(final String fqcn, final Level level, final T t) { + if (isEnabled(level, THROWING_MARKER, (Object) null, null)) { + logMessage(fqcn, level, THROWING_MARKER, throwingMsg(t), t); } - return messageFactory.newMessage("exit with(" + result + ")"); + return t; } - /** - * Returns a String representation of this instance in the form {@code "name"}. - * - * @return A String describing this Logger instance. - */ - @Override - public String toString() { - return name; + protected Message throwingMsg(final Throwable t) { + return messageFactory.newMessage(THROWING); } /** @@ -1574,9 +1463,7 @@ */ @Override public void trace(final Marker marker, final Message msg) { - if (isEnabled(Level.TRACE, marker, msg, null)) { - log(marker, FQCN, Level.TRACE, msg, null); - } + log(FQCN, Level.TRACE, marker, msg, null); } /** @@ -1588,9 +1475,7 @@ */ @Override public void trace(final Marker marker, final Message msg, final Throwable t) { - if (isEnabled(Level.TRACE, marker, msg, t)) { - log(marker, FQCN, Level.TRACE, msg, t); - } + log(FQCN, Level.TRACE, marker, msg, t); } /** @@ -1601,9 +1486,7 @@ */ @Override public void trace(final Marker marker, final Object message) { - if (isEnabled(Level.TRACE, marker, message, null)) { - log(marker, FQCN, Level.TRACE, messageFactory.newMessage(message), null); - } + log(FQCN, Level.TRACE, marker, message, null); } /** @@ -1620,9 +1503,7 @@ */ @Override public void trace(final Marker marker, final Object message, final Throwable t) { - if (isEnabled(Level.TRACE, marker, message, t)) { - log(marker, FQCN, Level.TRACE, messageFactory.newMessage(message), t); - } + log(FQCN, Level.TRACE, marker, message, t); } /** @@ -1633,9 +1514,7 @@ */ @Override public void trace(final Marker marker, final String message) { - if (isEnabled(Level.TRACE, marker, message)) { - log(marker, FQCN, Level.TRACE, messageFactory.newMessage(message), null); - } + log(FQCN, Level.TRACE, marker, message, (Throwable) null); } /** @@ -1647,10 +1526,7 @@ */ @Override public void trace(final Marker marker, final String message, final Object... params) { - if (isEnabled(Level.TRACE, marker, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(marker, FQCN, Level.TRACE, msg, msg.getThrowable()); - } + log(FQCN, Level.TRACE, marker, message, params); } /** @@ -1667,9 +1543,7 @@ */ @Override public void trace(final Marker marker, final String message, final Throwable t) { - if (isEnabled(Level.TRACE, marker, message, t)) { - log(marker, FQCN, Level.TRACE, messageFactory.newMessage(message), t); - } + log(FQCN, Level.TRACE, marker, message, t); } /** @@ -1679,9 +1553,7 @@ */ @Override public void trace(final Message msg) { - if (isEnabled(Level.TRACE, null, msg, null)) { - log(null, FQCN, Level.TRACE, msg, null); - } + log(FQCN, Level.TRACE, null, msg, null); } /** @@ -1692,9 +1564,7 @@ */ @Override public void trace(final Message msg, final Throwable t) { - if (isEnabled(Level.TRACE, null, msg, t)) { - log(null, FQCN, Level.TRACE, msg, t); - } + log(FQCN, Level.TRACE, null, msg, t); } /** @@ -1704,9 +1574,7 @@ */ @Override public void trace(final Object message) { - if (isEnabled(Level.TRACE, null, message, null)) { - log(null, FQCN, Level.TRACE, messageFactory.newMessage(message), null); - } + log(FQCN, Level.TRACE, null, messageFactory.newMessage(message), null); } /** @@ -1722,9 +1590,7 @@ */ @Override public void trace(final Object message, final Throwable t) { - if (isEnabled(Level.TRACE, null, message, t)) { - log(null, FQCN, Level.TRACE, messageFactory.newMessage(message), t); - } + log(FQCN, Level.TRACE, null, message, t); } /** @@ -1734,9 +1600,7 @@ */ @Override public void trace(final String message) { - if (isEnabled(Level.TRACE, null, message)) { - log(null, FQCN, Level.TRACE, messageFactory.newMessage(message), null); - } + log(FQCN, Level.TRACE, null, message, (Throwable) null); } /** @@ -1747,10 +1611,7 @@ */ @Override public void trace(final String message, final Object... params) { - if (isEnabled(Level.TRACE, null, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(null, FQCN, Level.TRACE, msg, msg.getThrowable()); - } + log(FQCN, Level.TRACE, null, message, params); } /** @@ -1766,9 +1627,7 @@ */ @Override public void trace(final String message, final Throwable t) { - if (isEnabled(Level.TRACE, null, message, t)) { - log(null, FQCN, Level.TRACE, messageFactory.newMessage(message), t); - } + log(FQCN, Level.TRACE, null, message, t); } /** @@ -1779,9 +1638,7 @@ */ @Override public void warn(final Marker marker, final Message msg) { - if (isEnabled(Level.WARN, marker, msg, null)) { - log(marker, FQCN, Level.WARN, msg, null); - } + log(FQCN, Level.WARN, marker, msg, null); } /** @@ -1793,9 +1650,7 @@ */ @Override public void warn(final Marker marker, final Message msg, final Throwable t) { - if (isEnabled(Level.WARN, marker, msg, t)) { - log(marker, FQCN, Level.WARN, msg, t); - } + log(FQCN, Level.WARN, marker, msg, t); } /** @@ -1806,9 +1661,7 @@ */ @Override public void warn(final Marker marker, final Object message) { - if (isEnabled(Level.WARN, marker, message, null)) { - log(marker, FQCN, Level.WARN, messageFactory.newMessage(message), null); - } + log(FQCN, Level.WARN, marker, message, null); } /* @@ -1826,9 +1679,7 @@ */ @Override public void warn(final Marker marker, final Object message, final Throwable t) { - if (isEnabled(Level.WARN, marker, message, t)) { - log(marker, FQCN, Level.WARN, messageFactory.newMessage(message), t); - } + log(FQCN, Level.WARN, marker, message, t); } /** @@ -1839,9 +1690,7 @@ */ @Override public void warn(final Marker marker, final String message) { - if (isEnabled(Level.WARN, marker, message)) { - log(marker, FQCN, Level.WARN, messageFactory.newMessage(message), null); - } + log(FQCN, Level.WARN, marker, message, (Throwable) null); } /** @@ -1853,10 +1702,7 @@ */ @Override public void warn(final Marker marker, final String message, final Object... params) { - if (isEnabled(Level.WARN, marker, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(marker, FQCN, Level.WARN, msg, msg.getThrowable()); - } + log(FQCN, Level.WARN, marker, message, params); } /** @@ -1869,9 +1715,7 @@ */ @Override public void warn(final Marker marker, final String message, final Throwable t) { - if (isEnabled(Level.WARN, marker, message, t)) { - log(marker, FQCN, Level.WARN, messageFactory.newMessage(message), t); - } + log(FQCN, Level.WARN, marker, message, t); } /** @@ -1881,9 +1725,7 @@ */ @Override public void warn(final Message msg) { - if (isEnabled(Level.WARN, null, msg, null)) { - log(null, FQCN, Level.WARN, msg, null); - } + log(FQCN, Level.WARN, null, msg, null); } /** @@ -1894,9 +1736,7 @@ */ @Override public void warn(final Message msg, final Throwable t) { - if (isEnabled(Level.WARN, null, msg, t)) { - log(null, FQCN, Level.WARN, msg, t); - } + log(FQCN, Level.WARN, null, msg, t); } /** @@ -1906,9 +1746,7 @@ */ @Override public void warn(final Object message) { - if (isEnabled(Level.WARN, null, message, null)) { - log(null, FQCN, Level.WARN, messageFactory.newMessage(message), null); - } + log(FQCN, Level.WARN, null, messageFactory.newMessage(message), null); } /** @@ -1920,9 +1758,7 @@ */ @Override public void warn(final Object message, final Throwable t) { - if (isEnabled(Level.WARN, null, message, t)) { - log(null, FQCN, Level.WARN, messageFactory.newMessage(message), t); - } + log(FQCN, Level.WARN, null, message, t); } /** @@ -1932,9 +1768,7 @@ */ @Override public void warn(final String message) { - if (isEnabled(Level.WARN, null, message)) { - log(null, FQCN, Level.WARN, messageFactory.newMessage(message), null); - } + log(FQCN, Level.WARN, null, message, (Throwable) null); } /** @@ -1945,10 +1779,7 @@ */ @Override public void warn(final String message, final Object... params) { - if (isEnabled(Level.WARN, null, message, params)) { - final Message msg = messageFactory.newMessage(message, params); - log(null, FQCN, Level.WARN, msg, msg.getThrowable()); - } + log(FQCN, Level.WARN, null, message, params); } /** @@ -1960,9 +1791,7 @@ */ @Override public void warn(final String message, final Throwable t) { - if (isEnabled(Level.WARN, null, message, t)) { - log(null, FQCN, Level.WARN, messageFactory.newMessage(message), t); - } + log(FQCN, Level.WARN, null, message, t); } } Index: log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerStream.java =================================================================== --- log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerStream.java (revision 1577019) +++ log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerStream.java (working copy) @@ -250,7 +250,7 @@ throw new IndexOutOfBoundsException(); } final Message message = logger.getMessageFactory().newMessage(extractLine(upTo)); - logger.log(marker, FQCN, level, message, null); + logger.log(FQCN, level, marker, message, null); } private String extractLine(int upTo) { Index: log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerWrapper.java =================================================================== --- log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerWrapper.java (revision 1577019) +++ log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerWrapper.java (working copy) @@ -31,7 +31,7 @@ /** * The wrapped Logger. */ - protected final AbstractLogger logger; + protected final LoggerProvider logger; /** * Constructor that wraps and existing Logger. @@ -39,85 +39,86 @@ * @param name The name of the Logger. * @param messageFactory TODO */ - public AbstractLoggerWrapper(final AbstractLogger logger, final String name, final MessageFactory messageFactory) { + public AbstractLoggerWrapper(final LoggerProvider logger, final String name, final MessageFactory messageFactory) { super(name, messageFactory); - this.logger = logger; + this.logger = (LoggerProvider) logger; } /** * Detect if the event would be logged. * @param level The logging Level to check. * @param marker A Marker or null. - * @param data The Message. + * @param message The Message. * @param t A Throwable. * @return true if the event would be logged for the Level, Marker, Message and Throwable, false otherwise. */ @Override - public boolean isEnabled(final Level level, final Marker marker, final Message data, final Throwable t) { - return logger.isEnabled(level, marker, data, t); + public boolean isEnabled(final Level level, final Marker marker, final Message message, final Throwable t) { + return logger.isEnabled(level, marker, message, t); } /** * Detect if the event would be logged. * @param level The logging Level to check. * @param marker A Marker or null. - * @param data The message. + * @param message The message. * @param t A Throwable. * @return true if the event would be logged for the Level, Marker, Object and Throwable, false otherwise. */ @Override - public boolean isEnabled(final Level level, final Marker marker, final Object data, final Throwable t) { - return logger.isEnabled(level, marker, data, t); + public boolean isEnabled(final Level level, final Marker marker, final Object message, final Throwable t) { + return logger.isEnabled(level, marker, message, t); } /** * Detect if the event would be logged. * @param level The logging Level to check. * @param marker A Marker or null. - * @param data The message. - * @return true if the event would be logged for the Level, Marker and data, false otherwise. + * @param message The message. + * @return true if the event would be logged for the Level, Marker, message and parameter. */ @Override - public boolean isEnabled(final Level level, final Marker marker, final String data) { - return logger.isEnabled(level, marker, data); + public boolean isEnabled(final Level level, final Marker marker, final String message) { + return logger.isEnabled(level, marker, message); } /** * Detect if the event would be logged. * @param level The logging Level to check. * @param marker A Marker or null. - * @param data The message. - * @param p1 The parameters. - * @return true if the event would be logged for the Level, Marker, data and parameter. + * @param message The message. + * @param params The parameters. + * @return true if the event would be logged for the Level, Marker, message and parameter. */ @Override - public boolean isEnabled(final Level level, final Marker marker, final String data, final Object... p1) { - return logger.isEnabled(level, marker, data, p1); + public boolean isEnabled(final Level level, final Marker marker, final String message, final Object... params) { + return logger.isEnabled(level, marker, message, params); } /** * Detect if the event would be logged. * @param level The logging Level to check. * @param marker A Marker or null. - * @param data The message. + * @param message The message. * @param t A Throwable. - * @return true if the event would be logged for the Level, Marker, data and Throwable, false otherwise. + * @return true if the event would be logged for the Level, Marker, message and Throwable, false otherwise. */ @Override - public boolean isEnabled(final Level level, final Marker marker, final String data, final Throwable t) { - return logger.isEnabled(level, marker, data, t); + public boolean isEnabled(final Level level, final Marker marker, final String message, final Throwable t) { + return logger.isEnabled(level, marker, message, t); } - + /** - * Log an event. - * @param marker The Marker - * @param fqcn The fully qualified class name of the caller - * @param level The logging level - * @param data The Message. - * @param t A Throwable or null. + * Always log an event. This tends to be already guarded by an enabled check, so this method + * should not check for the logger level again + * @param fqcn The fully qualified class name of the caller + * @param level The logging level + * @param marker The Marker + * @param message The Message. + * @param t A Throwable or null. */ @Override - public void log(final Marker marker, final String fqcn, final Level level, final Message data, final Throwable t) { - logger.log(marker, fqcn, level, data, t); + public void logMessage(final String fqcn, final Level level, final Marker marker, final Message message, final Throwable t) { + logger.logMessage(fqcn, level, marker, message, t); } } Index: log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerWriter.java =================================================================== --- log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerWriter.java (revision 1577019) +++ log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerWriter.java (working copy) @@ -73,6 +73,6 @@ private void log() { final Message message = logger.getMessageFactory().newMessage(buf.toString()); buf.setLength(0); - logger.log(marker, FQCN, level, message, null); + logger.log(FQCN, level, marker, message, null); } } Index: log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerContext.java =================================================================== --- log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerContext.java (revision 1577019) +++ log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerContext.java (working copy) @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.spi; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.message.MessageFactory; /** @@ -35,7 +34,7 @@ * @param name The name of the Logger to return. * @return The logger with the specified name. */ - Logger getLogger(String name); + LoggerProvider getLogger(String name); /** * Returns a Logger. @@ -44,7 +43,7 @@ * the logger but will log a warning if mismatched. * @return The logger with the specified name. */ - Logger getLogger(String name, MessageFactory messageFactory); + LoggerProvider getLogger(String name, MessageFactory messageFactory); /** * Detects if a Logger with the specified name exists. @@ -52,5 +51,4 @@ * @return true if the Logger exists, false otherwise. */ boolean hasLogger(String name); - } Index: log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerProvider.java =================================================================== --- log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerProvider.java (revision 0) +++ log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerProvider.java (revision 0) @@ -0,0 +1,127 @@ +package org.apache.logging.log4j.spi; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.Marker; +import org.apache.logging.log4j.message.Message; +import org.apache.logging.log4j.message.MessageFactory; + +public interface LoggerProvider extends Logger { + + /** + * Determine if logging is enabled. + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param message The Message. + * @param t A Throwable. + * @return True if logging is enabled, false otherwise. + */ + boolean isEnabled(Level level, Marker marker, Message message, Throwable t); + + /** + * Determine if logging is enabled. + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param message The message. + * @param t A Throwable. + * @return True if logging is enabled, false otherwise. + */ + boolean isEnabled(Level level, Marker marker, Object message, Throwable t); + + /** + * Determine if logging is enabled. + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param message The message. + * @return True if logging is enabled, false otherwise. + */ + boolean isEnabled(Level level, Marker marker, String message, Throwable t); + + /** + * Determine if logging is enabled. + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param message The message. + * @return True if logging is enabled, false otherwise. + */ + boolean isEnabled(Level level, Marker marker, String message); + + /** + * Determine if logging is enabled. + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param message The message. + * @param params The parameters. + * @return True if logging is enabled, false otherwise. + */ + boolean isEnabled(Level level, Marker marker, String message, Object... params); + + /** + * Log a message if the specified level is active + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param source Locates the source of the caller + * @param message The Message. + * @param t A Throwable. + */ + void log(String fqcn, Level level, Marker marker, Message message, Throwable t); + + /** + * Log a message if the specified level is active + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param source Locates the source of the caller + * @param message The message. + * @param t A Throwable. + */ + void log(String fqcn, Level level, Marker marker, Object message, Throwable t); + + /** + * Log a message if the specified level is active + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param source Locates the source of the caller + * @param message The message. + */ + void log(String fqcn, Level level, Marker marker, String message, Throwable t); + + /** + * Log a message if the specified level is active + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param source Locates the source of the caller + * @param message The message. + */ + void log(String fqcn, Level level, Marker marker, String message); + + /** + * Log a message if the specified level is active + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param source Locates the source of the caller + * @param message The message. + * @param params The parameters. + */ + void log(String fqcn, Level level, Marker marker, String message, Object... params); + + /** + * Always log a message at the specified level + * + * @param level The logging Level to check. + * @param marker A Marker or null. + * @param fqcn The fully qualified class name of the logger entry point + * @param message The Message. + * @param t A Throwable. + */ + void logMessage(String fqcn, Level level, Marker marker, Message message, Throwable t); +} Index: log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java =================================================================== --- log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java (revision 1577019) +++ log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java (working copy) @@ -105,10 +105,9 @@ this.level = level; } } - + @Override - public void log(final Marker marker, final String fqcn, final Level level, final Message msg, - final Throwable throwable) { + public void logMessage(final String fqcn, final Level level, final Marker marker, final Message msg, final Throwable throwable) { final StringBuilder sb = new StringBuilder(); // Append date-time if so configured if (showDateTime) { @@ -153,28 +152,27 @@ } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String msg) { + public boolean isEnabled(final Level level, final Marker marker, final String msg, final Throwable t) { return this.level.intLevel() >= level.intLevel(); } - @Override - protected boolean isEnabled(final Level level, final Marker marker, final String msg, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final String msg) { return this.level.intLevel() >= level.intLevel(); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String msg, final Object... p1) { + public boolean isEnabled(final Level level, final Marker marker, final String msg, final Object... p1) { return this.level.intLevel() >= level.intLevel(); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final Object msg, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final Object msg, final Throwable t) { return this.level.intLevel() >= level.intLevel(); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final Message msg, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final Message msg, final Throwable t) { return this.level.intLevel() >= level.intLevel(); } Index: log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java =================================================================== --- log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java (revision 1577019) +++ log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java (working copy) @@ -24,10 +24,10 @@ import java.util.concurrent.ConcurrentMap; import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.spi.AbstractLogger; import org.apache.logging.log4j.spi.LoggerContext; +import org.apache.logging.log4j.spi.LoggerProvider; import org.apache.logging.log4j.util.PropertiesUtil; /** @@ -64,7 +64,7 @@ private final PrintStream stream; - private final ConcurrentMap loggers = new ConcurrentHashMap(); + private final ConcurrentMap loggers = new ConcurrentHashMap(); public SimpleLoggerContext() { props = new PropertiesUtil("log4j2.simplelog.properties"); @@ -97,14 +97,14 @@ } @Override - public Logger getLogger(final String name) { + public LoggerProvider getLogger(final String name) { return getLogger(name, null); } @Override - public Logger getLogger(final String name, final MessageFactory messageFactory) { + public LoggerProvider getLogger(final String name, final MessageFactory messageFactory) { if (loggers.containsKey(name)) { - final Logger logger = loggers.get(name); + final LoggerProvider logger = loggers.get(name); AbstractLogger.checkMessageFactory(logger, messageFactory); return logger; } Index: log4j-api/src/main/java/org/apache/logging/log4j/EventLogger.java =================================================================== --- log4j-api/src/main/java/org/apache/logging/log4j/EventLogger.java (revision 1577019) +++ log4j-api/src/main/java/org/apache/logging/log4j/EventLogger.java (working copy) @@ -17,8 +17,7 @@ package org.apache.logging.log4j; import org.apache.logging.log4j.message.StructuredDataMessage; -import org.apache.logging.log4j.spi.AbstractLogger; -import org.apache.logging.log4j.spi.AbstractLoggerWrapper; +import org.apache.logging.log4j.spi.LoggerProvider; /** * Logs "Events" that are represented as StructuredDataMessages. @@ -34,16 +33,7 @@ private static final String FQCN = EventLogger.class.getName(); - private static AbstractLoggerWrapper loggerWrapper; - - static { - final Logger eventLogger = LogManager.getLogger(NAME); - if (!(eventLogger instanceof AbstractLogger)) { - throw new LoggingException("Logger returned must be based on AbstractLogger"); - } - loggerWrapper = new AbstractLoggerWrapper((AbstractLogger) eventLogger, NAME, null); - } - + private static final LoggerProvider LOGGER = LogManager.getContext().getLogger(NAME); private EventLogger() { } @@ -53,7 +43,7 @@ * @param msg The event StructuredDataMessage. */ public static void logEvent(final StructuredDataMessage msg) { - loggerWrapper.log(EVENT_MARKER, FQCN, Level.OFF, msg, null); + LOGGER.log(FQCN, Level.OFF, EVENT_MARKER, msg, null); } /** @@ -62,6 +52,6 @@ * @param level The logging Level. */ public static void logEvent(final StructuredDataMessage msg, final Level level) { - loggerWrapper.log(EVENT_MARKER, FQCN, level, msg, null); + LOGGER.log(FQCN, level, EVENT_MARKER, msg, null); } } Index: log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java =================================================================== --- log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java (revision 1577019) +++ log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java (working copy) @@ -53,8 +53,6 @@ private static final String DEFAULT_STATUS_LEVEL = PROPS.getStringProperty("log4j2.StatusLogger.level"); - // private static final String FQCN = AbstractLogger.class.getName(); - private static final StatusLogger STATUS_LOGGER = new StatusLogger(); private final SimpleLogger logger; @@ -178,7 +176,7 @@ * @param t A Throwable or null. */ @Override - public void log(final Marker marker, final String fqcn, final Level level, final Message msg, final Throwable t) { + public void logMessage(final String fqcn, final Level level, final Marker marker, final Message msg, final Throwable t) { StackTraceElement element = null; if (fqcn != null) { element = getStackTraceElement(fqcn, Thread.currentThread().getStackTrace()); @@ -197,7 +195,7 @@ } } } else { - logger.log(marker, fqcn, level, msg, t); + logger.logMessage(fqcn, level, marker, msg, t); } } @@ -221,27 +219,27 @@ } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String data) { + public boolean isEnabled(final Level level, final Marker marker, final String message, final Throwable t) { return isEnabled(level, marker); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String data, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final String message) { return isEnabled(level, marker); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String data, final Object... p1) { + public boolean isEnabled(final Level level, final Marker marker, final String message, final Object... params) { return isEnabled(level, marker); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final Object data, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final Object message, final Throwable t) { return isEnabled(level, marker); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final Message data, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final Message message, final Throwable t) { return isEnabled(level, marker); } @@ -250,23 +248,7 @@ if (listeners.size() > 0) { return listenersLevel >= level.intLevel(); } - - switch (level.getStandardLevel()) { - case FATAL: - return logger.isFatalEnabled(marker); - case TRACE: - return logger.isTraceEnabled(marker); - case DEBUG: - return logger.isDebugEnabled(marker); - case INFO: - return logger.isInfoEnabled(marker); - case WARN: - return logger.isWarnEnabled(marker); - case ERROR: - return logger.isErrorEnabled(marker); - default: - return false; - } + return logger.isEnabled(level, marker); } /** Index: log4j-taglib/src/main/java/org/apache/logging/log4j/taglib/Log4jTaglibLogger.java =================================================================== --- log4j-taglib/src/main/java/org/apache/logging/log4j/taglib/Log4jTaglibLogger.java (revision 1577019) +++ log4j-taglib/src/main/java/org/apache/logging/log4j/taglib/Log4jTaglibLogger.java (working copy) @@ -18,8 +18,8 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.message.MessageFactory; -import org.apache.logging.log4j.spi.AbstractLogger; import org.apache.logging.log4j.spi.AbstractLoggerWrapper; +import org.apache.logging.log4j.spi.LoggerProvider; /** * The bridge between the tag library and the Log4j API ensures that the source information for log events is @@ -30,7 +30,7 @@ class Log4jTaglibLogger extends AbstractLoggerWrapper { private static final long serialVersionUID = 1L; - public Log4jTaglibLogger(final AbstractLogger logger, final String name, final MessageFactory messageFactory) { + public Log4jTaglibLogger(final LoggerProvider logger, final String name, final MessageFactory messageFactory) { super(logger, name, messageFactory); } Index: log4j-taglib/src/main/java/org/apache/logging/log4j/taglib/Log4jTaglibLoggerContext.java =================================================================== --- log4j-taglib/src/main/java/org/apache/logging/log4j/taglib/Log4jTaglibLoggerContext.java (revision 1577019) +++ log4j-taglib/src/main/java/org/apache/logging/log4j/taglib/Log4jTaglibLoggerContext.java (working copy) @@ -17,14 +17,14 @@ package org.apache.logging.log4j.taglib; import java.util.WeakHashMap; + import javax.servlet.ServletContext; import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LoggingException; import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.spi.AbstractLogger; import org.apache.logging.log4j.spi.LoggerContext; +import org.apache.logging.log4j.spi.LoggerProvider; /** * This bridge between the tag library and the Log4j API ensures that instances of {@link Log4jTaglibLogger} are @@ -68,15 +68,11 @@ synchronized (this.loggers) { logger = this.loggers.get(name); if (logger == null) { - final Logger original = factory == null ? - LogManager.getLogger(name) : LogManager.getLogger(name, factory); - if (!(original instanceof AbstractLogger)) { - throw new LoggingException( - "Log4j Tag Library requires base logging system to extend Log4j AbstractLogger." - ); - } + final LoggerContext context = LogManager.getContext(); + final LoggerProvider original = factory == null ? + context.getLogger(name) : context.getLogger(name, factory); // wrap a logger from an underlying implementation - logger = new Log4jTaglibLogger((AbstractLogger) original, name, original.getMessageFactory()); + logger = new Log4jTaglibLogger(original, name, original.getMessageFactory()); this.loggers.put(name, logger); } } Index: log4j-taglib/src/main/java/org/apache/logging/log4j/taglib/LoggingMessageTagSupport.java =================================================================== --- log4j-taglib/src/main/java/org/apache/logging/log4j/taglib/LoggingMessageTagSupport.java (revision 1577019) +++ log4j-taglib/src/main/java/org/apache/logging/log4j/taglib/LoggingMessageTagSupport.java (working copy) @@ -99,7 +99,7 @@ final Object message = this.getMessage(); final Throwable exception = this.getException(); if (message instanceof Message) { - logger.log(marker, FQCN, level, (Message) message, exception); + logger.log(FQCN, level, marker, (Message) message, exception); } else if (message instanceof String) { Message data; if (this.attributes.size() > 0) { @@ -107,9 +107,9 @@ } else { data = logger.getMessageFactory().newMessage((String) message); } - logger.log(marker, FQCN, level, data, exception); + logger.log(FQCN, level, marker, data, exception); } else { - logger.log(marker, FQCN, level, logger.getMessageFactory().newMessage(message), exception); + logger.log(FQCN, level, marker, logger.getMessageFactory().newMessage(message), exception); } } Index: log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/SLF4JLoggerContext.java =================================================================== --- log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/SLF4JLoggerContext.java (revision 1577019) +++ log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/SLF4JLoggerContext.java (working copy) @@ -22,6 +22,7 @@ import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.spi.LoggerContext; +import org.apache.logging.log4j.spi.LoggerProvider; import org.slf4j.LoggerFactory; /** @@ -36,7 +37,7 @@ } @Override - public Logger getLogger(final String name) { + public LoggerProvider getLogger(final String name) { if (!loggers.containsKey(name)) { loggers.putIfAbsent(name, new SLF4JLogger(name, LoggerFactory.getLogger(name))); } @@ -44,7 +45,7 @@ } @Override - public Logger getLogger(final String name, final MessageFactory messageFactory) { + public LoggerProvider getLogger(final String name, final MessageFactory messageFactory) { if (!loggers.containsKey(name)) { loggers.putIfAbsent(name, new SLF4JLogger(name, messageFactory, LoggerFactory.getLogger(name))); } Index: log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/SLF4JLogger.java =================================================================== --- log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/SLF4JLogger.java (revision 1577019) +++ log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/SLF4JLogger.java (working copy) @@ -45,35 +45,34 @@ this.logger = logger; this.locationAwareLogger = logger instanceof LocationAwareLogger ? (LocationAwareLogger) logger : null; } - + @Override - public void log(final Marker marker, final String fqcn, final Level level, final Message data, - final Throwable t) { + public void logMessage(String fqcn, Level level, Marker marker, Message message, Throwable t) { if (locationAwareLogger != null) { - if (data instanceof LoggerNameAwareMessage) { - ((LoggerNameAwareMessage) data).setLoggerName(getName()); + if (message instanceof LoggerNameAwareMessage) { + ((LoggerNameAwareMessage) message).setLoggerName(getName()); } - locationAwareLogger.log(getMarker(marker), fqcn, convertLevel(level), data.getFormattedMessage(), - data.getParameters(), t); + locationAwareLogger.log(getMarker(marker), fqcn, convertLevel(level), message.getFormattedMessage(), + message.getParameters(), t); } else { switch (level.getStandardLevel()) { case DEBUG : - logger.debug(getMarker(marker), data.getFormattedMessage(), data.getParameters(), t); + logger.debug(fqcn, getMarker(marker), message.getFormattedMessage(), message.getParameters(), t); break; case TRACE : - logger.trace(getMarker(marker), data.getFormattedMessage(), data.getParameters(), t); + logger.trace(fqcn, getMarker(marker), message.getFormattedMessage(), message.getParameters(), t); break; case INFO : - logger.info(getMarker(marker), data.getFormattedMessage(), data.getParameters(), t); + logger.info(fqcn, getMarker(marker), message.getFormattedMessage(), message.getParameters(), t); break; case WARN : - logger.warn(getMarker(marker), data.getFormattedMessage(), data.getParameters(), t); + logger.warn(fqcn, getMarker(marker), message.getFormattedMessage(), message.getParameters(), t); break; case ERROR : - logger.error(getMarker(marker), data.getFormattedMessage(), data.getParameters(), t); + logger.error(fqcn, getMarker(marker), message.getFormattedMessage(), message.getParameters(), t); break; default : - logger.error(getMarker(marker), data.getFormattedMessage(), data.getParameters(), t); + logger.error(fqcn, getMarker(marker), message.getFormattedMessage(), message.getParameters(), t); break; } } @@ -110,27 +109,27 @@ } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String data) { + public boolean isEnabled(final Level level, final Marker marker, final String data) { return isEnabledFor(level, marker); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String data, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final String data, final Throwable t) { return isEnabledFor(level, marker); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final String data, final Object... p1) { + public boolean isEnabled(final Level level, final Marker marker, final String data, final Object... p1) { return isEnabledFor(level, marker); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final Object data, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final Object data, final Throwable t) { return isEnabledFor(level, marker); } @Override - protected boolean isEnabled(final Level level, final Marker marker, final Message data, final Throwable t) { + public boolean isEnabled(final Level level, final Marker marker, final Message data, final Throwable t) { return isEnabledFor(level, marker); } Index: log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/Log4jLog.java =================================================================== --- log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/Log4jLog.java (revision 1577019) +++ log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/Log4jLog.java (working copy) @@ -16,18 +16,113 @@ */ package org.apache.logging.log4j.jcl; +import java.io.Serializable; + import org.apache.commons.logging.Log; -import org.apache.logging.log4j.spi.AbstractLogger; -import org.apache.logging.log4j.spi.AbstractLoggerWrapper; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.spi.LoggerProvider; /** * */ -public class Log4jLog extends AbstractLoggerWrapper implements Log { - +public class Log4jLog implements Log, Serializable { + private static final long serialVersionUID = 1L; + private static final String FQCN = Log4jLog.class.getName(); + + private final LoggerProvider logger; + + public Log4jLog(final LoggerProvider logger) { + this.logger = logger; + } + + @Override + public boolean isDebugEnabled() { + return logger.isEnabled(Level.DEBUG, null, null); + } + + @Override + public boolean isErrorEnabled() { + return logger.isEnabled(Level.ERROR, null, null); + } + + @Override + public boolean isFatalEnabled() { + return logger.isEnabled(Level.FATAL, null, null); + } + + @Override + public boolean isInfoEnabled() { + return logger.isEnabled(Level.INFO, null, null); + } + + @Override + public boolean isTraceEnabled() { + return logger.isEnabled(Level.TRACE, null, null); + } + + @Override + public boolean isWarnEnabled() { + return logger.isEnabled(Level.WARN, null, null); + } - public Log4jLog(final AbstractLogger logger, final String name) { - super(logger, name, null); + @Override + public void trace(Object message) { + logger.log(FQCN, Level.TRACE, null, message, null); + } + + @Override + public void trace(Object message, Throwable t) { + logger.log(FQCN, Level.TRACE, null, message, t); + } + + @Override + public void debug(Object message) { + logger.log(FQCN, Level.DEBUG, null, message, null); + } + + @Override + public void debug(Object message, Throwable t) { + logger.log(FQCN, Level.DEBUG, null, message, t); + } + + @Override + public void info(Object message) { + logger.log(FQCN, Level.INFO, null, message, null); + } + + @Override + public void info(Object message, Throwable t) { + logger.log(FQCN, Level.INFO, null, message, t); + } + + @Override + public void warn(Object message) { + logger.log(FQCN, Level.WARN, null, message, null); + } + + @Override + public void warn(Object message, Throwable t) { + logger.log(FQCN, Level.WARN, null, message, t); + } + + @Override + public void error(Object message) { + logger.log(FQCN, Level.ERROR, null, message, null); + } + + @Override + public void error(Object message, Throwable t) { + logger.log(FQCN, Level.ERROR, null, message, t); + } + + @Override + public void fatal(Object message) { + logger.log(FQCN, Level.FATAL, null, message, null); + } + + @Override + public void fatal(Object message, Throwable t) { + logger.log(FQCN, Level.FATAL, null, message, t); } } Index: log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java =================================================================== --- log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java (revision 1577019) +++ log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java (working copy) @@ -25,8 +25,8 @@ import org.apache.commons.logging.LogConfigurationException; import org.apache.commons.logging.LogFactory; import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.spi.AbstractLogger; import org.apache.logging.log4j.spi.LoggerContext; +import org.apache.logging.log4j.spi.LoggerProvider; /** * @@ -44,13 +44,8 @@ if (loggers.containsKey(name)) { return loggers.get(name); } - final org.apache.logging.log4j.Logger logger = PrivateManager.getLogger(name); - if (logger instanceof AbstractLogger) { - loggers.putIfAbsent(name, new Log4jLog((AbstractLogger) logger, name)); - return loggers.get(name); - } - throw new LogConfigurationException( - "Commons Logging Adapter requires base logging system to extend Log4j AbstractLogger"); + loggers.putIfAbsent(name, new Log4jLog(PrivateManager.getLogger(name))); + return loggers.get(name); } private ConcurrentMap getLoggersMap() { @@ -113,8 +108,8 @@ return getContext(FQCN, false); } - public static org.apache.logging.log4j.Logger getLogger(final String name) { - return getLogger(FQCN, name); + public static LoggerProvider getLogger(final String name) { + return getContext().getLogger(name); } } Index: log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java =================================================================== --- log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java (revision 1577019) +++ log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java (working copy) @@ -341,14 +341,14 @@ * Logs an event. * * @param loggerName The name of the Logger. - * @param marker A Marker or null if none is present. * @param fqcn The fully qualified class name of the caller. + * @param marker A Marker or null if none is present. * @param level The event Level. * @param data The Message. * @param t A Throwable or null. */ - public void log(final String loggerName, final Marker marker, - final String fqcn, final Level level, final Message data, + public void log(final String loggerName, final String fqcn, + final Marker marker, final Level level, final Message data, final Throwable t) { List props = null; if (properties != null) { Index: log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java =================================================================== --- log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java (revision 1577019) +++ log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java (working copy) @@ -104,37 +104,35 @@ } @Override - public void log(final Marker marker, final String fqcn, final Level level, Message data, final Throwable t) { - if (data == null) { - data = new SimpleMessage(""); - } + public void logMessage(final String fqcn, final Level level, final Marker marker, final Message message, final Throwable t) { + final Message msg = message == null ? new SimpleMessage("") : message; config.config.getConfigurationMonitor().checkConfiguration(); - config.loggerConfig.log(getName(), marker, fqcn, level, data, t); + config.loggerConfig.log(getName(), fqcn, marker, level, msg, t); } @Override - public boolean isEnabled(final Level level, final Marker marker, final String msg) { - return config.filter(level, marker, msg); + public boolean isEnabled(final Level level, final Marker marker, final String message, final Throwable t) { + return config.filter(level, marker, message, t); } @Override - public boolean isEnabled(final Level level, final Marker marker, final String msg, final Throwable t) { - return config.filter(level, marker, msg, t); + public boolean isEnabled(final Level level, final Marker marker, final String message) { + return config.filter(level, marker, message); } @Override - public boolean isEnabled(final Level level, final Marker marker, final String msg, final Object... p1) { - return config.filter(level, marker, msg, p1); + public boolean isEnabled(final Level level, final Marker marker, final String message, final Object... params) { + return config.filter(level, marker, message, params); } @Override - public boolean isEnabled(final Level level, final Marker marker, final Object msg, final Throwable t) { - return config.filter(level, marker, msg, t); + public boolean isEnabled(final Level level, final Marker marker, final Object message, final Throwable t) { + return config.filter(level, marker, message, t); } @Override - public boolean isEnabled(final Level level, final Marker marker, final Message msg, final Throwable t) { - return config.filter(level, marker, msg, t); + public boolean isEnabled(final Level level, final Marker marker, final Message message, final Throwable t) { + return config.filter(level, marker, message, t); } /** Index: log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java =================================================================== --- log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java (revision 1577019) +++ log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java (working copy) @@ -230,7 +230,7 @@ } @Override - public void log(final Marker marker, final String fqcn, final Level level, final Message data, final Throwable t) { + public void logMessage(final String fqcn, final Level level, final Marker marker, final Message message, final Throwable t) { Info info = threadlocalInfo.get(); if (info == null) { info = new Info(new RingBufferLogEventTranslator(), Thread.currentThread().getName(), false); @@ -241,11 +241,11 @@ // being logged calls Logger.log() from its toString() method if (info.isAppenderThread && disruptor.getRingBuffer().remainingCapacity() == 0) { // bypass RingBuffer and invoke Appender directly - config.loggerConfig.log(getName(), marker, fqcn, level, data, t); + config.loggerConfig.log(getName(), fqcn, marker, level, message, t); return; } final boolean includeLocation = config.loggerConfig.isIncludeLocation(); - info.translator.setValues(this, getName(), marker, fqcn, level, data, t, // + info.translator.setValues(this, getName(), marker, fqcn, level, message, t, // // config properties are taken care of in the EventHandler // thread in the #actualAsyncLog method Index: log4j-slf4j-impl/src/main/java/org/slf4j/helpers/Log4jLoggerFactory.java =================================================================== --- log4j-slf4j-impl/src/main/java/org/slf4j/helpers/Log4jLoggerFactory.java (revision 1577019) +++ log4j-slf4j-impl/src/main/java/org/slf4j/helpers/Log4jLoggerFactory.java (working copy) @@ -22,9 +22,8 @@ import java.util.concurrent.ConcurrentMap; import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.spi.AbstractLogger; import org.apache.logging.log4j.spi.LoggerContext; -import org.apache.logging.slf4j.SLF4JLoggingException; +import org.apache.logging.log4j.spi.LoggerProvider; import org.slf4j.ILoggerFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,12 +49,8 @@ return loggers.get(name); } final String key = Logger.ROOT_LOGGER_NAME.equals(name) ? LogManager.ROOT_LOGGER_NAME : name; - final org.apache.logging.log4j.Logger logger = context.getLogger(key); - if (logger instanceof AbstractLogger) { - loggers.putIfAbsent(name, new SLF4JLogger((AbstractLogger) logger, name)); - return loggers.get(name); - } - throw new SLF4JLoggingException("SLF4J Adapter requires base logging system to extend Log4j AbstractLogger"); + loggers.putIfAbsent(name, new SLF4JLogger(context.getLogger(key), name)); + return loggers.get(name); } private ConcurrentMap getLoggersMap(final LoggerContext context) { @@ -104,9 +99,8 @@ return getContext(fqcn, false); } - public static org.apache.logging.log4j.Logger getLogger(final String name) { - return getLogger(FQCN, name); + public static LoggerProvider getLogger(final String name) { + return getContext(FQCN).getLogger(name); } } - } Index: log4j-slf4j-impl/src/main/java/org/slf4j/impl/SLF4JLogger.java =================================================================== --- log4j-slf4j-impl/src/main/java/org/slf4j/impl/SLF4JLogger.java (revision 1577019) +++ log4j-slf4j-impl/src/main/java/org/slf4j/impl/SLF4JLogger.java (working copy) @@ -16,38 +16,38 @@ */ package org.slf4j.impl; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; + import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.ParameterizedMessage; import org.apache.logging.log4j.message.SimpleMessage; -import org.apache.logging.log4j.spi.AbstractLogger; -import org.apache.logging.log4j.spi.AbstractLoggerWrapper; +import org.apache.logging.log4j.spi.LoggerProvider; import org.slf4j.Marker; import org.slf4j.MarkerFactory; import org.slf4j.helpers.EventDataConverter; import org.slf4j.spi.LocationAwareLogger; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; - /** * */ public class SLF4JLogger implements LocationAwareLogger, Serializable { + public static final String FQCN = SLF4JLogger.class.getName(); + private static final long serialVersionUID = 7869000638091304316L; - private static final String FQCN = SLF4JLogger.class.getName(); private static final Marker EVENT_MARKER = MarkerFactory.getMarker("EVENT"); private final boolean eventLogger; - private transient AbstractLoggerWrapper logger; + private transient LoggerProvider logger; private final String name; private transient EventDataConverter converter; - public SLF4JLogger(final AbstractLogger logger, final String name) { - this.logger = new AbstractLoggerWrapper(logger, name, null); + public SLF4JLogger(final LoggerProvider logger, final String name) { + this.logger = logger; this.eventLogger = "EventLogger".equals(name); this.name = name; this.converter = createConverter(); @@ -55,453 +55,324 @@ @Override public void trace(final String format) { - if (logger.isTraceEnabled()) { - logger.log(null, FQCN, Level.TRACE, new SimpleMessage(format), null); - } + logger.log(FQCN, Level.TRACE, null, format); } @Override public void trace(final String format, final Object o) { - if (logger.isTraceEnabled()) { - logger.log(null, FQCN, Level.TRACE, new ParameterizedMessage(format, o), null); - } + logger.log(FQCN, Level.TRACE, null, format, o); } @Override public void trace(final String format, final Object arg1, final Object arg2) { - if (logger.isTraceEnabled()) { - final ParameterizedMessage msg = new ParameterizedMessage(format, arg1, arg2); - logger.log(null, FQCN, Level.TRACE, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.TRACE, null, format, arg1, arg2); } @Override public void trace(final String format, final Object... args) { - if (logger.isTraceEnabled()) { - final ParameterizedMessage msg = new ParameterizedMessage(format, args); - logger.log(null, FQCN, Level.TRACE, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.TRACE, null, format, args); } @Override public void trace(final String format, final Throwable t) { - if (logger.isTraceEnabled()) { - logger.log(null, FQCN, Level.TRACE, new SimpleMessage(format), t); - } + logger.log(FQCN, Level.TRACE, null, format, t); } @Override public boolean isTraceEnabled() { - return logger.isTraceEnabled(); + return logger.isEnabled(Level.TRACE, null, null); } @Override public boolean isTraceEnabled(final Marker marker) { - return logger.isTraceEnabled((org.apache.logging.log4j.Marker) marker); + return logger.isEnabled(Level.TRACE, (org.apache.logging.log4j.Marker) marker, null); } @Override public void trace(final Marker marker, final String s) { - if (isTraceEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.TRACE, new SimpleMessage(s), null); - } + logger.log(FQCN, Level.TRACE, (org.apache.logging.log4j.Marker) marker, s); } @Override public void trace(final Marker marker, final String s, final Object o) { - if (isTraceEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.TRACE, - new ParameterizedMessage(s, o), null); - } + logger.log(FQCN, Level.TRACE, (org.apache.logging.log4j.Marker) marker, s, o); } @Override public void trace(final Marker marker, final String s, final Object o, final Object o1) { - if (isTraceEnabled(marker)) { - final ParameterizedMessage msg = new ParameterizedMessage(s, o, o1); - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.TRACE, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.TRACE, (org.apache.logging.log4j.Marker) marker, s, o, o1); } @Override public void trace(final Marker marker, final String s, final Object... objects) { - if (isTraceEnabled(marker)) { - final ParameterizedMessage msg = new ParameterizedMessage(s, objects); - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.TRACE, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.TRACE, (org.apache.logging.log4j.Marker) marker, s, objects); } @Override public void trace(final Marker marker, final String s, final Throwable throwable) { - if (isTraceEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.TRACE, - new SimpleMessage(s), throwable); - } + logger.log(FQCN, Level.TRACE, (org.apache.logging.log4j.Marker) marker, s, throwable); } @Override public void debug(final String format) { - if (logger.isDebugEnabled()) { - logger.log(null, FQCN, Level.DEBUG, new SimpleMessage(format), null); - } + logger.log(FQCN, Level.DEBUG, null, format); } @Override public void debug(final String format, final Object o) { - if (logger.isDebugEnabled()) { - logger.log(null, FQCN, Level.DEBUG, new ParameterizedMessage(format, o), null); - } + logger.log(FQCN, Level.DEBUG, null, format, o); } @Override public void debug(final String format, final Object arg1, final Object arg2) { - if (logger.isDebugEnabled()) { - final ParameterizedMessage msg = new ParameterizedMessage(format, arg1, arg2); - logger.log(null, FQCN, Level.DEBUG, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.DEBUG, null, format, arg1, arg2); } @Override public void debug(final String format, final Object... args) { - if (logger.isDebugEnabled()) { - final ParameterizedMessage msg = new ParameterizedMessage(format, args); - logger.log(null, FQCN, Level.DEBUG, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.DEBUG, null, format, args); } @Override public void debug(final String format, final Throwable t) { - if (logger.isDebugEnabled()) { - logger.log(null, FQCN, Level.DEBUG, new SimpleMessage(format), t); - } + logger.log(FQCN, Level.DEBUG, null, format, t); } @Override public boolean isDebugEnabled() { - return logger.isDebugEnabled(); + return logger.isEnabled(Level.DEBUG, null, null); } @Override public boolean isDebugEnabled(final Marker marker) { - return logger.isDebugEnabled((org.apache.logging.log4j.Marker) marker); + return logger.isEnabled(Level.DEBUG, (org.apache.logging.log4j.Marker) marker, null); } @Override public void debug(final Marker marker, final String s) { - if (isDebugEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.DEBUG, new SimpleMessage(s), null); - } + logger.log(FQCN, Level.DEBUG, (org.apache.logging.log4j.Marker) marker, s); } @Override public void debug(final Marker marker, final String s, final Object o) { - if (isDebugEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.DEBUG, - new ParameterizedMessage(s, o), null); - } + logger.log(FQCN, Level.DEBUG, (org.apache.logging.log4j.Marker) marker, s, o); } @Override public void debug(final Marker marker, final String s, final Object o, final Object o1) { - if (isDebugEnabled(marker)) { - final ParameterizedMessage msg = new ParameterizedMessage(s, o, o1); - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.DEBUG, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.DEBUG, (org.apache.logging.log4j.Marker) marker, s, o, o1); } @Override public void debug(final Marker marker, final String s, final Object... objects) { - if (isDebugEnabled(marker)) { - final ParameterizedMessage msg = new ParameterizedMessage(s, objects); - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.DEBUG, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.DEBUG, (org.apache.logging.log4j.Marker) marker, s, objects); } @Override public void debug(final Marker marker, final String s, final Throwable throwable) { - if (isDebugEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.DEBUG, - new SimpleMessage(s), throwable); - } + logger.log(FQCN, Level.DEBUG, (org.apache.logging.log4j.Marker) marker, s, throwable); } @Override public void info(final String format) { - if (logger.isInfoEnabled()) { - logger.log(null, FQCN, Level.INFO, new SimpleMessage(format), null); - } + logger.log(FQCN, Level.INFO, null, format); } @Override public void info(final String format, final Object o) { - if (logger.isInfoEnabled()) { - logger.log(null, FQCN, Level.INFO, new ParameterizedMessage(format, o), null); - } + logger.log(FQCN, Level.INFO, null, format, o); } @Override public void info(final String format, final Object arg1, final Object arg2) { - if (logger.isInfoEnabled()) { - final ParameterizedMessage msg = new ParameterizedMessage(format, arg1, arg2); - logger.log(null, FQCN, Level.INFO, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.INFO, null, format, arg1, arg2); } @Override public void info(final String format, final Object... args) { - if (logger.isInfoEnabled()) { - final ParameterizedMessage msg = new ParameterizedMessage(format, args); - logger.log(null, FQCN, Level.INFO, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.INFO, null, format, args); } @Override public void info(final String format, final Throwable t) { - if (logger.isInfoEnabled()) { - logger.log(null, FQCN, Level.INFO, new SimpleMessage(format), t); - } + logger.log(FQCN, Level.INFO, null, format, t); } @Override public boolean isInfoEnabled() { - return logger.isInfoEnabled(); + return logger.isEnabled(Level.INFO, null, null); } @Override public boolean isInfoEnabled(final Marker marker) { - return logger.isInfoEnabled((org.apache.logging.log4j.Marker) marker); + return logger.isEnabled(Level.INFO, (org.apache.logging.log4j.Marker) marker, null); } @Override public void info(final Marker marker, final String s) { - if (isInfoEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.INFO, new SimpleMessage(s), null); - } + logger.log(FQCN, Level.INFO, (org.apache.logging.log4j.Marker) marker, s); } @Override public void info(final Marker marker, final String s, final Object o) { - if (isInfoEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.INFO, - new ParameterizedMessage(s, o), null); - } + logger.log(FQCN, Level.INFO, (org.apache.logging.log4j.Marker) marker, s, o); } @Override public void info(final Marker marker, final String s, final Object o, final Object o1) { - if (isInfoEnabled(marker)) { - final ParameterizedMessage msg = new ParameterizedMessage(s, o, o1); - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.INFO, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.INFO, (org.apache.logging.log4j.Marker) marker, s, o, o1); } @Override public void info(final Marker marker, final String s, final Object... objects) { - if (isInfoEnabled(marker)) { - final ParameterizedMessage msg = new ParameterizedMessage(s, objects); - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.INFO, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.INFO, (org.apache.logging.log4j.Marker) marker, s, objects); } @Override public void info(final Marker marker, final String s, final Throwable throwable) { - if (isInfoEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.INFO, - new SimpleMessage(s), throwable); - } + logger.log(FQCN, Level.INFO, (org.apache.logging.log4j.Marker) marker, s, throwable); } @Override public void warn(final String format) { - if (logger.isWarnEnabled()) { - logger.log(null, FQCN, Level.WARN, new SimpleMessage(format), null); - } + logger.log(FQCN, Level.WARN, null, format); } @Override public void warn(final String format, final Object o) { - if (logger.isWarnEnabled()) { - logger.log(null, FQCN, Level.WARN, new ParameterizedMessage(format, o), null); - } + logger.log(FQCN, Level.WARN, null, format, o); } @Override public void warn(final String format, final Object arg1, final Object arg2) { - if (logger.isWarnEnabled()) { - final ParameterizedMessage msg = new ParameterizedMessage(format, arg1, arg2); - logger.log(null, FQCN, Level.WARN, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.WARN, null, format, arg1, arg2); } @Override public void warn(final String format, final Object... args) { - if (logger.isWarnEnabled()) { - final ParameterizedMessage msg = new ParameterizedMessage(format, args); - logger.log(null, FQCN, Level.WARN, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.WARN, null, format, args); } @Override public void warn(final String format, final Throwable t) { - if (logger.isWarnEnabled()) { - logger.log(null, FQCN, Level.WARN, new SimpleMessage(format), t); - } + logger.log(FQCN, Level.WARN, null, format, t); } @Override public boolean isWarnEnabled() { - return logger.isWarnEnabled(); + return logger.isEnabled(Level.WARN, null, null); } @Override public boolean isWarnEnabled(final Marker marker) { - return logger.isWarnEnabled((org.apache.logging.log4j.Marker) marker); + return logger.isEnabled(Level.WARN, (org.apache.logging.log4j.Marker) marker, null); } @Override public void warn(final Marker marker, final String s) { - if (isWarnEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.WARN, new SimpleMessage(s), null); - } + logger.log(FQCN, Level.WARN, (org.apache.logging.log4j.Marker) marker, s); } @Override public void warn(final Marker marker, final String s, final Object o) { - if (isWarnEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.WARN, - new ParameterizedMessage(s, o), null); - } + logger.log(FQCN, Level.WARN, (org.apache.logging.log4j.Marker) marker, s, o); } @Override public void warn(final Marker marker, final String s, final Object o, final Object o1) { - if (isWarnEnabled(marker)) { - final ParameterizedMessage msg = new ParameterizedMessage(s, o, o1); - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.WARN, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.WARN, (org.apache.logging.log4j.Marker) marker, s, o, o1); } @Override public void warn(final Marker marker, final String s, final Object... objects) { - if (isWarnEnabled(marker)) { - final ParameterizedMessage msg = new ParameterizedMessage(s, objects); - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.WARN, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.WARN, (org.apache.logging.log4j.Marker) marker, s, objects); } @Override public void warn(final Marker marker, final String s, final Throwable throwable) { - if (isWarnEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.WARN, - new SimpleMessage(s), throwable); - } + logger.log(FQCN, Level.WARN, (org.apache.logging.log4j.Marker) marker, s, throwable); } @Override public void error(final String format) { - if (logger.isErrorEnabled()) { - logger.log(null, FQCN, Level.ERROR, new SimpleMessage(format), null); - } + logger.log(FQCN, Level.ERROR, null, format); } @Override public void error(final String format, final Object o) { - if (logger.isErrorEnabled()) { - logger.log(null, FQCN, Level.ERROR, new ParameterizedMessage(format, o), null); - } + logger.log(FQCN, Level.ERROR, null, format, o); } @Override public void error(final String format, final Object arg1, final Object arg2) { - if (logger.isErrorEnabled()) { - final ParameterizedMessage msg = new ParameterizedMessage(format, arg1, arg2); - logger.log(null, FQCN, Level.ERROR, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.ERROR, null, format, arg1, arg2); } @Override public void error(final String format, final Object... args) { - if (logger.isErrorEnabled()) { - final ParameterizedMessage msg = new ParameterizedMessage(format, args); - logger.log(null, FQCN, Level.ERROR, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.ERROR, null, format, args); } @Override public void error(final String format, final Throwable t) { - if (logger.isErrorEnabled()) { - logger.log(null, FQCN, Level.ERROR, new SimpleMessage(format), t); - } + logger.log(FQCN, Level.ERROR, null, format, t); } @Override public boolean isErrorEnabled() { - return logger.isErrorEnabled(); + return logger.isEnabled(Level.ERROR, null, null); } @Override public boolean isErrorEnabled(final Marker marker) { - return logger.isErrorEnabled((org.apache.logging.log4j.Marker) marker); + return logger.isEnabled(Level.ERROR, (org.apache.logging.log4j.Marker) marker, null); } @Override public void error(final Marker marker, final String s) { - if (isErrorEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.ERROR, new SimpleMessage(s), null); - } + logger.log(FQCN, Level.ERROR, (org.apache.logging.log4j.Marker) marker, s); } @Override public void error(final Marker marker, final String s, final Object o) { - if (isErrorEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.ERROR, - new ParameterizedMessage(s, o), null); - } + logger.log(FQCN, Level.ERROR, (org.apache.logging.log4j.Marker) marker, s, o); } @Override public void error(final Marker marker, final String s, final Object o, final Object o1) { - if (isErrorEnabled(marker)) { - final ParameterizedMessage msg = new ParameterizedMessage(s, o, o1); - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.ERROR, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.ERROR, (org.apache.logging.log4j.Marker) marker, s, o, o1); } @Override public void error(final Marker marker, final String s, final Object... objects) { - if (isErrorEnabled(marker)) { - final ParameterizedMessage msg = new ParameterizedMessage(s, objects); - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.ERROR, msg, msg.getThrowable()); - } + logger.log(FQCN, Level.ERROR, (org.apache.logging.log4j.Marker) marker, s, objects); } @Override public void error(final Marker marker, final String s, final Throwable throwable) { - if (isErrorEnabled(marker)) { - logger.log((org.apache.logging.log4j.Marker) marker, FQCN, Level.ERROR, - new SimpleMessage(s), throwable); - } + logger.log(FQCN, Level.ERROR, (org.apache.logging.log4j.Marker) marker, s, throwable); } - @Override - public void log(final Marker marker, final String fqcn, final int i, final String s1, final Object[] objects, - Throwable throwable) { - if (!logger.isEnabled(getLevel(i), (org.apache.logging.log4j.Marker) marker, s1)) { + public void log(final Marker marker, final String fqcn, final int level, final String message, final Object[] params, Throwable throwable) { + final Level log4jLevel = getLevel(level); + final org.apache.logging.log4j.Marker log4jMarker = (org.apache.logging.log4j.Marker) marker; + + if (!logger.isEnabled(log4jLevel, log4jMarker, message, params)) { return; } Message msg; if (eventLogger && marker != null && marker.contains(EVENT_MARKER) && converter != null) { - msg = converter.convertEvent(s1, objects, throwable); - } else if (objects == null) { - msg = new SimpleMessage(s1); + msg = converter.convertEvent(message, params, throwable); + } else if (params == null) { + msg = new SimpleMessage(message); } else { - msg = new ParameterizedMessage(s1, objects, throwable); + msg = new ParameterizedMessage(message, params, throwable); if (throwable != null) { throwable = msg.getThrowable(); } } - logger.log((org.apache.logging.log4j.Marker) marker, fqcn, getLevel(i), msg, throwable); + logger.logMessage(fqcn, log4jLevel, log4jMarker, msg, throwable); } @Override @@ -510,23 +381,21 @@ } /** - * Always treat de-serialization as a full-blown constructor, by - * validating the final state of the de-serialized object. + * Always treat de-serialization as a full-blown constructor, by validating the final state of + * the de-serialized object. */ private void readObject(ObjectInputStream aInputStream) throws ClassNotFoundException, IOException { - //always perform the default de-serialization first + // always perform the default de-serialization first aInputStream.defaultReadObject(); - logger = new AbstractLoggerWrapper((AbstractLogger) LogManager.getLogger(name), name, null); + logger = LogManager.getContext().getLogger(name); converter = createConverter(); } /** - * This is the default implementation of writeObject. - * Customise if necessary. + * This is the default implementation of writeObject. Customise if necessary. */ - private void writeObject(ObjectOutputStream aOutputStream - ) throws IOException { - //perform the default serialization for all non-transient, non-static fields + private void writeObject(ObjectOutputStream aOutputStream) throws IOException { + // perform the default serialization for all non-transient, non-static fields aOutputStream.defaultWriteObject(); } @@ -541,16 +410,16 @@ private Level getLevel(final int i) { switch (i) { - case TRACE_INT : - return Level.TRACE; - case DEBUG_INT : - return Level.DEBUG; - case INFO_INT : - return Level.INFO; - case WARN_INT : - return Level.WARN; - case ERROR_INT : - return Level.ERROR; + case TRACE_INT: + return Level.TRACE; + case DEBUG_INT: + return Level.DEBUG; + case INFO_INT: + return Level.INFO; + case WARN_INT: + return Level.WARN; + case ERROR_INT: + return Level.ERROR; } return Level.ERROR; }