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 0295310503 for ; Wed, 17 Jul 2013 22:03:43 +0000 (UTC) Received: (qmail 95472 invoked by uid 500); 17 Jul 2013 22:03:43 -0000 Delivered-To: apmail-logging-commits-archive@logging.apache.org Received: (qmail 95449 invoked by uid 500); 17 Jul 2013 22:03:42 -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 95442 invoked by uid 99); 17 Jul 2013 22:03:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Jul 2013 22:03:42 +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; Wed, 17 Jul 2013 22:03:40 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 18B8E23888A6; Wed, 17 Jul 2013 22:03:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r1504299 - in /logging/log4j/log4j2/trunk/core/src: main/java/org/apache/logging/log4j/core/layout/ main/resources/ test/java/org/apache/logging/log4j/core/appender/ test/java/org/apache/logging/log4j/core/layout/ test/resources/ Date: Wed, 17 Jul 2013 22:03:19 -0000 To: commits@logging.apache.org From: ggregory@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130717220320.18B8E23888A6@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ggregory Date: Wed Jul 17 22:03:19 2013 New Revision: 1504299 URL: http://svn.apache.org/r1504299 Log: - Use CamelCase for element names, like class names. - Use camelCase of attribute names, like instance variables. - Add first cut of DTD for XML layout. - Add first cut of XSD for XML layout. - Remove trailing ‘/’ at the end of the namespace. Added: logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.dtd (with props) logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.xsd (with props) logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderValidationTest.java (with props) logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderValidationTest.xml (with props) Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/layout/XMLLayout.java logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/XmlFileAppenderTest.java logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/layout/XMLLayoutTest.java logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderTest.xml logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompleteFileAppenderTest.xml logging/log4j/log4j2/trunk/core/src/test/resources/XmlFileAppenderTest.xml Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/layout/XMLLayout.java URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/layout/XMLLayout.java?rev=1504299&r1=1504298&r2=1504299&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/layout/XMLLayout.java (original) +++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/layout/XMLLayout.java Wed Jul 17 22:03:19 2013 @@ -55,14 +55,14 @@ import org.apache.logging.log4j.message. * *
  * <?xml version="1.0" encoding="UTF-8"?>
- * <events xmlns="http://logging.apache.org/log4j/2.0">
- *   <event logger="com.foo.Bar" timestamp="1373436580419" level="INFO" thread="main">
- *     <message><![CDATA[This is a log message 1]]></message>
- *   </event>
- *   <event logger="com.foo.Baz" timestamp="1373436580420" level="INFO" thread="main">
- *     <message><![CDATA[This is a log message 2]]></message>
- *   </event>
- * </events>
+ * <Events xmlns="http://logging.apache.org/log4j/2.0">
+ *   <Event logger="com.foo.Bar" timestamp="1373436580419" level="INFO" thread="main">
+ *     <Message><![CDATA[This is a log message 1]]></Message>
+ *   </Event>
+ *   <Event logger="com.foo.Baz" timestamp="1373436580420" level="INFO" thread="main">
+ *     <Message><![CDATA[This is a log message 2]]></Message>
+ *   </Event>
+ * </Events>
  * 
*

* If {@code complete="false"}, the appender does not write the XML processing instruction and the root element. @@ -85,7 +85,8 @@ import org.apache.logging.log4j.message. @Plugin(name = "XMLLayout", category = "Core", elementType = "layout", printObject = true) public class XMLLayout extends AbstractStringLayout { - private static final String XML_NAMESPACE = "http://logging.apache.org/log4j/2.0/"; + private static final String XML_NAMESPACE = "http://logging.apache.org/log4j/2.0"; + private static final String ROOT_TAG = "Events"; private static final int DEFAULT_SIZE = 256; // We yield to \r\n for the default. @@ -134,7 +135,7 @@ public class XMLLayout extends AbstractS if (!complete) { buf.append(this.namespacePrefix); } - buf.append("event logger=\""); + buf.append("Event logger=\""); String name = event.getLoggerName(); if (name.isEmpty()) { name = "root"; @@ -166,7 +167,7 @@ public class XMLLayout extends AbstractS if (!complete) { buf.append(this.namespacePrefix); } - buf.append("message>"); + buf.append("Message>"); if (xmlSupported) { buf.append(((MultiformatMessage) msg).getFormattedMessage(FORMATS)); } else { @@ -180,7 +181,7 @@ public class XMLLayout extends AbstractS if (!complete) { buf.append(this.namespacePrefix); } - buf.append("message>"); + buf.append("Message>"); buf.append(this.eol); } @@ -208,7 +209,7 @@ public class XMLLayout extends AbstractS if (!complete) { buf.append(this.namespacePrefix); } - buf.append("throwable>"); + buf.append("Throwable>"); buf.append(this.eol); } @@ -228,7 +229,7 @@ public class XMLLayout extends AbstractS if (!complete) { buf.append(this.namespacePrefix); } - buf.append("locationInfo class=\""); + buf.append("LocationInfo class=\""); buf.append(Transform.escapeTags(element.getClassName())); buf.append("\" method=\""); buf.append(Transform.escapeTags(element.getMethodName())); @@ -246,7 +247,7 @@ public class XMLLayout extends AbstractS if (!complete) { buf.append(this.namespacePrefix); } - buf.append("properties>"); + buf.append("Properties>"); buf.append(this.eol); for (final Map.Entry entry : event.getContextMap().entrySet()) { buf.append(this.indent3); @@ -254,7 +255,7 @@ public class XMLLayout extends AbstractS if (!complete) { buf.append(this.namespacePrefix); } - buf.append("data name=\""); + buf.append("Data name=\""); buf.append(Transform.escapeTags(entry.getKey())); buf.append("\" value=\""); buf.append(Transform.escapeTags(String.valueOf(entry.getValue()))); @@ -266,7 +267,7 @@ public class XMLLayout extends AbstractS if (!complete) { buf.append(this.namespacePrefix); } - buf.append("properties>"); + buf.append("Properties>"); buf.append(this.eol); } @@ -275,7 +276,7 @@ public class XMLLayout extends AbstractS if (!complete) { buf.append(this.namespacePrefix); } - buf.append("event>"); + buf.append("Event>"); buf.append(this.eol); return buf.toString(); @@ -301,7 +302,9 @@ public class XMLLayout extends AbstractS buf.append("\"?>"); buf.append(this.eol); // Make the log4j namespace the default namespace, no need to use more space with a namespace prefix. - buf.append(""); + buf.append('<'); + buf.append(ROOT_TAG); + buf.append(" xmlns=\"" + XML_NAMESPACE + "\">"); buf.append(this.eol); return buf.toString().getBytes(this.getCharset()); } @@ -317,19 +320,20 @@ public class XMLLayout extends AbstractS if (!complete) { return null; } - return ("" + this.eol).getBytes(getCharset()); + return ("" + this.eol).getBytes(getCharset()); } /** * XMLLayout's content format is specified by:

- * Key: "dtd" Value: "log4j.dtd"

+ * Key: "dtd" Value: "log4j-events.dtd"

* Key: "version" Value: "2.0" * @return Map of content format keys supporting XMLLayout */ @Override public Map getContentFormat() { final Map result = new HashMap(); - result.put("dtd", "log4j.dtd"); + //result.put("dtd", "log4j-events.dtd"); + result.put("xsd", "log4j-events.xsd"); result.put("version", "2.0"); return result; } Added: logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.dtd URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.dtd?rev=1504299&view=auto ============================================================================== --- logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.dtd (added) +++ logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.dtd Wed Jul 17 22:03:19 2013 @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Propchange: logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.dtd ------------------------------------------------------------------------------ svn:eol-style = native Propchange: logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.dtd ------------------------------------------------------------------------------ svn:keywords = Id Added: logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.xsd URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.xsd?rev=1504299&view=auto ============================================================================== --- logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.xsd (added) +++ logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.xsd Wed Jul 17 22:03:19 2013 @@ -0,0 +1,74 @@ + + + + + + + Log4J 2.0 XML Schema + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Propchange: logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.xsd ------------------------------------------------------------------------------ svn:eol-style = native Propchange: logging/log4j/log4j2/trunk/core/src/main/resources/Log4j-events.xsd ------------------------------------------------------------------------------ svn:keywords = Id Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java?rev=1504299&r1=1504298&r2=1504299&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java (original) +++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java Wed Jul 17 22:03:19 2013 @@ -16,7 +16,8 @@ */ package org.apache.logging.log4j.core.appender; -import static org.junit.Assert.*; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import java.io.BufferedReader; import java.io.File; @@ -42,30 +43,29 @@ public class XmlCompactFileAppenderTest @Test public void testFlushAtEndOfBatch() throws Exception { - final File f = new File("target", "XmlCompactFileAppenderTest.log"); - // System.out.println(f.getAbsolutePath()); - f.delete(); + final File file = new File("target", "XmlCompactFileAppenderTest.log"); + file.delete(); final Logger log = LogManager.getLogger("com.foo.Bar"); final String logMsg = "Message flushed with immediate flush=false"; log.info(logMsg); ((LifeCycle) LogManager.getContext()).stop(); // stop async thread - final BufferedReader reader = new BufferedReader(new FileReader(f)); + final BufferedReader reader = new BufferedReader(new FileReader(file)); String line1; try { line1 = reader.readLine(); } finally { reader.close(); - f.delete(); + file.delete(); } assertNotNull("line1", line1); final String msg1 = ""; assertTrue("line1 incorrect: [" + line1 + "], does not contain: [" + msg1 + "]", line1.contains(msg1)); - final String msg2 = ""; + final String msg2 = ""; assertTrue("line1 incorrect: [" + line1 + "], does not contain: [" + msg2 + "]", line1.contains(msg2)); - final String msg3 = ""; + final String msg2 = ""; assertTrue("line2 incorrect: [" + line2 + "], does not contain: [" + msg2 + "]", line2.equals(msg2)); assertNotNull("line3", line3); - final String msg3 = ""; + ""; static ConfigurationFactory cf = new BasicConfigurationFactory(); @AfterClass @@ -107,7 +107,7 @@ public class XMLLayoutTest { assertTrue("Incorrect number of lines. Require at least 50 " + list.size(), list.size() > 50); final String string = list.get(0); assertTrue("Incorrect header: " + string, string.equals("")); - assertTrue("Incorrect footer", list.get(list.size() - 1).equals("")); + assertTrue("Incorrect footer", list.get(list.size() - 1).equals("")); assertTrue("Incorrect body. Expected " + body + " Actual: " + list.get(7), list.get(7).trim().equals(body)); } } Modified: logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderTest.xml URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderTest.xml?rev=1504299&r1=1504298&r2=1504299&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderTest.xml (original) +++ logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderTest.xml Wed Jul 17 22:03:19 2013 @@ -1,14 +1,14 @@ - - + + - + - + - - - - - - + + + + + + Added: logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderValidationTest.xml URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderValidationTest.xml?rev=1504299&view=auto ============================================================================== --- logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderValidationTest.xml (added) +++ logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderValidationTest.xml Wed Jul 17 22:03:19 2013 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + Propchange: logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderValidationTest.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompactFileAppenderValidationTest.xml ------------------------------------------------------------------------------ svn:keywords = Id Modified: logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompleteFileAppenderTest.xml URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompleteFileAppenderTest.xml?rev=1504299&r1=1504298&r2=1504299&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompleteFileAppenderTest.xml (original) +++ logging/log4j/log4j2/trunk/core/src/test/resources/XmlCompleteFileAppenderTest.xml Wed Jul 17 22:03:19 2013 @@ -1,14 +1,14 @@ - - + + - + - + - - - - - - + + + + + + Modified: logging/log4j/log4j2/trunk/core/src/test/resources/XmlFileAppenderTest.xml URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/resources/XmlFileAppenderTest.xml?rev=1504299&r1=1504298&r2=1504299&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/core/src/test/resources/XmlFileAppenderTest.xml (original) +++ logging/log4j/log4j2/trunk/core/src/test/resources/XmlFileAppenderTest.xml Wed Jul 17 22:03:19 2013 @@ -1,14 +1,14 @@ - - + + - + - + - - - - - - \ No newline at end of file + + + + + + \ No newline at end of file