diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/AbstractMessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/AbstractMessageFactory.java index d54a225..97da501 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/AbstractMessageFactory.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/AbstractMessageFactory.java @@ -23,15 +23,24 @@ *

* This class is immutable. *

+ *

+ * Subclasses can implement the {@link MessageFactory2} methods when they can most effectively build messages. + * Otherwise, if messages construction is not trivial, this class implements a default behavior. + *

*/ -public abstract class AbstractMessageFactory implements MessageFactory, Serializable { +public abstract class AbstractMessageFactory implements MessageFactory2, Serializable { private static final long serialVersionUID = -1307891137684031187L; + @Override + public Message newMessage(CharSequence message) { + return new SimpleMessage(message); + } + /* - * (non-Javadoc) - * - * @see org.apache.logging.log4j.message.MessageFactory#newMessage(java.lang.Object) - */ + * (non-Javadoc) + * + * @see org.apache.logging.log4j.message.MessageFactory#newMessage(java.lang.Object) + */ @Override public Message newMessage(final Object message) { return new ObjectMessage(message); @@ -47,12 +56,88 @@ return new SimpleMessage(message); } - /* - * (non-Javadoc) - * - * @see org.apache.logging.log4j.message.MessageFactory#newMessage(java.lang.String, java.lang.Object) + /** + * @since 2.6.1 */ @Override - public abstract Message newMessage(String message, Object... params); + public Message newMessage(String message, Object p0) { + return newMessage(message, new Object[] { p0 }); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1) { + return newMessage(message, new Object[] { p0, p1 }); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2) { + return newMessage(message, new Object[] { p0, p1, p2 }); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3) { + return newMessage(message, new Object[] { p0, p1, p2, p3 }); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4) { + return newMessage(message, new Object[] { p0, p1, p2, p3, p4 }); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) { + return newMessage(message, new Object[] { p0, p1, p2, p3, p4, p5 }); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6) { + return newMessage(message, new Object[] { p0, p1, p2, p3, p4, p5, p6 }); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7) { + return newMessage(message, new Object[] { p0, p1, p2, p3, p4, p5, p6, p7 }); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8) { + return newMessage(message, new Object[] { p0, p1, p2, p3, p4, p5, p6, p7, p8 }); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8, Object p9) { + return newMessage(message, new Object[] { p0, p1, p2, p3, p4, p5, p6, p7, p8, p9 }); + } } diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessageFactory.java index 2e36269..338f22d 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessageFactory.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessageFactory.java @@ -22,14 +22,14 @@ */ public class FormattedMessageFactory extends AbstractMessageFactory { + private static final long serialVersionUID = 1L; + /** * Constructs a message factory with default flow strings. */ public FormattedMessageFactory() { super(); } - - private static final long serialVersionUID = 1L; /** * Creates {@link StringFormattedMessage} instances. @@ -44,4 +44,88 @@ public Message newMessage(final String message, final Object... params) { return new FormattedMessage(message, params); } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0) { + return new FormattedMessage(message, p0); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1) { + return new FormattedMessage(message, p0, p1); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2) { + return new FormattedMessage(message, p0, p1, p2); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3) { + return new FormattedMessage(message, p0, p1, p2, p3); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4) { + return new FormattedMessage(message, p0, p1, p2, p3, p4); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) { + return new FormattedMessage(message, p0, p1, p2, p3, p4, p5); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6) { + return new FormattedMessage(message, p0, p1, p2, p3, p4, p5, p6); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7) { + return new FormattedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8) { + return new FormattedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8, Object p9) { + return new FormattedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); + } } diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/MessageFormatMessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/MessageFormatMessageFactory.java index a13543a..79fefcd 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/MessageFormatMessageFactory.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/MessageFormatMessageFactory.java @@ -42,4 +42,88 @@ public Message newMessage(final String message, final Object... params) { return new MessageFormatMessage(message, params); } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0) { + return new MessageFormatMessage(message, p0); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1) { + return new MessageFormatMessage(message, p0, p1); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2) { + return new MessageFormatMessage(message, p0, p1, p2); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3) { + return new MessageFormatMessage(message, p0, p1, p2, p3); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4) { + return new MessageFormatMessage(message, p0, p1, p2, p3, p4); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) { + return new MessageFormatMessage(message, p0, p1, p2, p3, p4, p5); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6) { + return new MessageFormatMessage(message, p0, p1, p2, p3, p4, p5, p6); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7) { + return new MessageFormatMessage(message, p0, p1, p2, p3, p4, p5, p6, p7); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8) { + return new MessageFormatMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8, Object p9) { + return new MessageFormatMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); + } } diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessageFactory.java index 8aa801f..dd24476 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessageFactory.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessageFactory.java @@ -26,6 +26,11 @@ *

*/ public final class ParameterizedMessageFactory extends AbstractMessageFactory { + /** + * Instance of ParameterizedMessageFactory. + */ + public static final ParameterizedMessageFactory INSTANCE = new ParameterizedMessageFactory(); + private static final long serialVersionUID = -8970940216592525651L; /** @@ -34,11 +39,6 @@ public ParameterizedMessageFactory() { super(); } - - /** - * Instance of ParameterizedMessageFactory. - */ - public static final ParameterizedMessageFactory INSTANCE = new ParameterizedMessageFactory(); /** * Creates {@link ParameterizedMessage} instances. @@ -53,4 +53,88 @@ public Message newMessage(final String message, final Object... params) { return new ParameterizedMessage(message, params); } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0) { + return new ParameterizedMessage(message, p0); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1) { + return new ParameterizedMessage(message, p0, p1); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2) { + return new ParameterizedMessage(message, p0, p1, p2); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3) { + return new ParameterizedMessage(message, p0, p1, p2, p3); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4) { + return new ParameterizedMessage(message, p0, p1, p2, p3, p4); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) { + return new ParameterizedMessage(message, p0, p1, p2, p3, p4, p5); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6) { + return new ParameterizedMessage(message, p0, p1, p2, p3, p4, p5, p6); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7) { + return new ParameterizedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8) { + return new ParameterizedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8, Object p9) { + return new ParameterizedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); + } } diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessageFactory.java index 9020538..3897109 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessageFactory.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessageFactory.java @@ -41,7 +41,7 @@ * @param message * The message pattern. * @param params - * The parameters to the message. + * The parameters to the message are ignored. * @return The Message. * * @see MessageFactory#newMessage(String, Object...) @@ -50,4 +50,88 @@ public Message newMessage(final String message, final Object... params) { return new SimpleMessage(message); } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0) { + return new SimpleMessage(message); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1) { + return new SimpleMessage(message); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2) { + return new SimpleMessage(message); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3) { + return new SimpleMessage(message); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4) { + return new SimpleMessage(message); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) { + return new SimpleMessage(message); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6) { + return new SimpleMessage(message); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7) { + return new SimpleMessage(message); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8) { + return new SimpleMessage(message); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8, Object p9) { + return new SimpleMessage(message); + } } diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormattedMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormattedMessage.java index 0d6e838..94d7557 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormattedMessage.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormattedMessage.java @@ -28,7 +28,10 @@ /** * Handles messages that consist of a format string conforming to {@link java.util.Formatter}. + * */ +// This class implements the unrolled args API even though StringFormattedMessage does not. This leaves the room for +// StringFormattedMessage to unroll itself later. public class StringFormattedMessage implements Message { private static final Logger LOGGER = StatusLogger.getLogger(); diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormatterMessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormatterMessageFactory.java index b4d6bf2..876dbc9 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormatterMessageFactory.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormatterMessageFactory.java @@ -53,4 +53,88 @@ public Message newMessage(final String message, final Object... params) { return new StringFormattedMessage(message, params); } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0) { + return new StringFormattedMessage(message, p0); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1) { + return new StringFormattedMessage(message, p0, p1); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2) { + return new StringFormattedMessage(message, p0, p1, p2); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3) { + return new StringFormattedMessage(message, p0, p1, p2, p3); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4) { + return new StringFormattedMessage(message, p0, p1, p2, p3, p4); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) { + return new StringFormattedMessage(message, p0, p1, p2, p3, p4, p5); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6) { + return new StringFormattedMessage(message, p0, p1, p2, p3, p4, p5, p6); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7) { + return new StringFormattedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8) { + return new StringFormattedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8); + } + + /** + * @since 2.6.1 + */ + @Override + public Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, + Object p6, Object p7, Object p8, Object p9) { + return new StringFormattedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); + } } diff --git a/perf-test1.txt b/perf-test1.txt new file mode 100644 index 0000000..8916511 --- /dev/null +++ b/perf-test1.txt Binary files differ diff --git a/perf-test2.txt b/perf-test2.txt new file mode 100644 index 0000000..80f51fd --- /dev/null +++ b/perf-test2.txt Binary files differ