Return-Path: X-Original-To: apmail-logging-commits-archive@minotaur.apache.org Delivered-To: apmail-logging-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0D2111076A for ; Sun, 5 Jan 2014 04:22:21 +0000 (UTC) Received: (qmail 3391 invoked by uid 500); 5 Jan 2014 04:22:20 -0000 Delivered-To: apmail-logging-commits-archive@logging.apache.org Received: (qmail 3362 invoked by uid 500); 5 Jan 2014 04:22:16 -0000 Mailing-List: contact commits-help@logging.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@logging.apache.org Delivered-To: mailing list commits@logging.apache.org Received: (qmail 3355 invoked by uid 99); 5 Jan 2014 04:22:13 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Jan 2014 04:22:13 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Jan 2014 04:22:10 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B175B2388993; Sun, 5 Jan 2014 04:21:49 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1555454 - in /logging/log4j/log4j2/trunk: log4j-core/src/main/java/org/apache/logging/log4j/core/layout/RFC5424Layout.java log4j-core/src/test/java/org/apache/logging/log4j/core/layout/RFC5424LayoutTest.java src/changes/changes.xml Date: Sun, 05 Jan 2014 04:21:49 -0000 To: commits@logging.apache.org From: rgoers@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140105042149.B175B2388993@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: rgoers Date: Sun Jan 5 04:21:49 2014 New Revision: 1555454 URL: http://svn.apache.org/r1555454 Log: LOG4J2-430 - Use the formatted Message in RFC5424Layout for non-StructuredDataMessages Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/RFC5424Layout.java logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/RFC5424LayoutTest.java logging/log4j/log4j2/trunk/src/changes/changes.xml Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/RFC5424Layout.java URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/RFC5424Layout.java?rev=1555454&r1=1555453&r2=1555454&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/RFC5424Layout.java (original) +++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/RFC5424Layout.java Sun Jan 5 04:21:49 2014 @@ -324,7 +324,8 @@ public class RFC5424Layout extends Abstr private void appendMessage(final StringBuilder buffer, final LogEvent event) { final Message message = event.getMessage(); - final String text = message.getFormat(); + // This layout formats StructuredDataMessages instead of delegating to the Message itself. + final String text = (message instanceof StructuredDataMessage) ? message.getFormat() : message.getFormattedMessage(); if (text != null && text.length() > 0) { buffer.append(" ").append(escapeNewlines(text, escapeNewLine)); Modified: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/RFC5424LayoutTest.java URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/RFC5424LayoutTest.java?rev=1555454&r1=1555453&r2=1555454&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/RFC5424LayoutTest.java (original) +++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/RFC5424LayoutTest.java Sun Jan 5 04:21:49 2014 @@ -242,7 +242,7 @@ public class RFC5424LayoutTest { assertTrue("Not enough list entries", list.size() > 1); final String string = list.get(1); - assertTrue("No Exception in " + string, string.contains("IllegalArgumentException")); + assertTrue("No Exception in " + string, string.contains("IllegalArgumentException")); appender.clear(); } finally { @@ -424,4 +424,31 @@ public class RFC5424LayoutTest { appender.stop(); } } + + @Test + public void testParameterizedMessage() { + for (final Appender appender : root.getAppenders().values()) { + root.removeAppender(appender); + } + // set up appender + final AbstractStringLayout layout = RFC5424Layout.createLayout("Local0", "Event", "3692", "true", "RequestContext", + null, null, "true", null, "ATM", null, "key1, key2, locale", null, null, null, "true", null, null); + final ListAppender appender = new ListAppender("List", null, layout, true, false); + + appender.start(); + + // set appender on root and set level to debug + root.addAppender(appender); + root.setLevel(Level.DEBUG); + root.info("Hello {}", "World"); + try { + final List list = appender.getMessages(); + assertTrue("Not enough list entries", list.size() > 0); + String message = list.get(0); + assertTrue("Incorrect message. Expected - Hello World, Actual - " + message, message.contains("Hello World")); + } finally { + root.removeAppender(appender); + appender.stop(); + } + } } Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1555454&r1=1555453&r2=1555454&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/src/changes/changes.xml (original) +++ logging/log4j/log4j2/trunk/src/changes/changes.xml Sun Jan 5 04:21:49 2014 @@ -21,6 +21,9 @@ + + Use the formatted Message in RFC5424Layout for non-StructuredDataMessages. + Set external context when constructing the LoggerContext.