You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2013/07/10 08:30:33 UTC
svn commit: r1501658 - in /logging/log4j/log4j2/trunk:
api/src/main/java/org/apache/logging/log4j/
api/src/main/java/org/apache/logging/log4j/spi/
api/src/test/java/org/apache/logging/log4j/ src/changes/
Author: rgoers
Date: Wed Jul 10 06:30:33 2013
New Revision: 1501658
URL: http://svn.apache.org/r1501658
Log:
LOG4J2-301 - Add printf methods to Logger API
Modified:
logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java
logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java
logging/log4j/log4j2/trunk/api/src/test/java/org/apache/logging/log4j/LoggerTest.java
logging/log4j/log4j2/trunk/src/changes/changes.xml
Modified: logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java?rev=1501658&r1=1501657&r2=1501658&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java (original)
+++ logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java Wed Jul 10 06:30:33 2013
@@ -841,6 +841,23 @@ public interface Logger {
void log(Level level, String message, Throwable t);
/**
+ * Logs a formatted message using the specified format string and arguments.
+ * @param level The logging Level.
+ * @param format The format String.
+ * @param params Arguments specified by the format.
+ */
+ void printf(Level level, String format, Object... params);
+
+ /**
+ * Logs a formatted message using the specified format string and arguments.
+ * @param level The logging Level.
+ * @param marker the marker data specific to this log statement.
+ * @param format The format String.
+ * @param params Arguments specified by the format.
+ */
+ void printf(Level level, Marker marker, String format, Object... params);
+
+ /**
* Logs an exception or error to be thrown. This may be coded as <br />
* throw logger.throwing(debug, myException);
* @param <T> the Throwable type.
Modified: logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java?rev=1501658&r1=1501657&r2=1501658&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java (original)
+++ logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java Wed Jul 10 06:30:33 2013
@@ -23,6 +23,7 @@ import org.apache.logging.log4j.MarkerMa
import org.apache.logging.log4j.message.Message;
import org.apache.logging.log4j.message.MessageFactory;
import org.apache.logging.log4j.message.ParameterizedMessageFactory;
+import org.apache.logging.log4j.message.StringFormattedMessage;
import org.apache.logging.log4j.status.StatusLogger;
/**
@@ -1449,6 +1450,33 @@ public abstract class AbstractLogger imp
}
/**
+ * Logs a formatted message using the specified format string and arguments.
+ * @param level The logging Level.
+ * @param format The format String.
+ * @param params Arguments specified by the format.
+ */
+ 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());
+ }
+ }
+
+ /**
+ * Logs a formatted message using the specified format string and arguments.
+ * @param level The logging Level.
+ * @param marker the marker data specific to this log statement.
+ * @param format The format String.
+ * @param params Arguments specified by the format.
+ */
+ public void printf(Level level, Marker marker, String format, Object... params) {
+ if (isEnabled(level, null, format, params)) {
+ Message msg = new StringFormattedMessage(format, params);
+ log(marker, FQCN, level, msg, msg.getThrowable());
+ }
+ }
+
+ /**
* Logs a message with location information.
*
* @param marker The Marker
Modified: logging/log4j/log4j2/trunk/api/src/test/java/org/apache/logging/log4j/LoggerTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/api/src/test/java/org/apache/logging/log4j/LoggerTest.java?rev=1501658&r1=1501657&r2=1501658&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/api/src/test/java/org/apache/logging/log4j/LoggerTest.java (original)
+++ logging/log4j/log4j2/trunk/api/src/test/java/org/apache/logging/log4j/LoggerTest.java Wed Jul 10 06:30:33 2013
@@ -238,6 +238,15 @@ public class LoggerTest {
assertEquals(String.format(" DEBUG %,d", Integer.MAX_VALUE), testLogger.getEntries().get(0));
}
+ @Test
+ public void printf() {
+ logger.printf(Level.DEBUG, "Debug message %d", 1);
+ logger.printf(Level.DEBUG, MarkerManager.getMarker("Test"), "Debug message %d", 2);
+ assertEquals(2, results.size());
+ assertTrue("Incorrect message", results.get(0).startsWith(" DEBUG Debug message 1"));
+ assertTrue("Incorrect message", results.get(1).startsWith(" DEBUG Debug message 2"));
+ }
+
public void getLoggerByNullClass() {
// Returns a SimpleLogger
Assert.assertNotNull(LogManager.getLogger((Class<?>) null));
Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1501658&r1=1501657&r2=1501658&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/src/changes/changes.xml (original)
+++ logging/log4j/log4j2/trunk/src/changes/changes.xml Wed Jul 10 06:30:33 2013
@@ -21,6 +21,9 @@
</properties>
<body>
<release version="2.0-beta8" date="2013-??-??" description="Bug fixes and enhancements">
+ <action issue="LOG4J2-301" dev="rgoers" type="update">
+ Add printf methods to Logger API.
+ </action>
<action issue="LOG4J2-300" dev="rgoers" type="fix">
WriterThread was ending when no agents are available which caused an OutOfMemoryError.
</action>