Author: rgoers
Date: Sat May 10 20:25:28 2014
New Revision: 1593727
URL: http://svn.apache.org/r1593727
Log:
LOG4J2-623 - Format ThreadContext properties as a JSON map in JSONLayout
Modified:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JSONLayout.java
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JSONLayoutTest.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/JSONLayout.java
URL:
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JSONLayout.java?rev=1593727&r1=1593726&r2=1593727&view=diff
==============================================================================
---
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JSONLayout.java
(original)
+++
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JSONLayout.java
Sat May 10 20:25:28 2014
@@ -253,34 +253,25 @@ public class JSONLayout extends Abstract
buf.append(',');
buf.append(this.eol);
buf.append(this.indent2);
- buf.append("\"Properties\":[");
- buf.append(this.eol);
+ buf.append("\"Properties\": {");
final Set<Entry<String, String>> entrySet =
event.getContextMap().entrySet();
int i = 1;
for (final Map.Entry<String, String> entry : entrySet) {
- buf.append(this.indent3);
- buf.append('{');
buf.append(this.eol);
- buf.append(this.indent4);
- buf.append("\"name\":\"");
+ buf.append(this.indent3);
+ buf.append("\"");
buf.append(Transform.escapeJsonControlCharacters(entry.getKey()));
- buf.append("\",");
- buf.append(this.eol);
- buf.append(this.indent4);
- buf.append("\"value\":\"");
+ buf.append("\": \"");
buf.append(Transform.escapeJsonControlCharacters(String.valueOf(entry.getValue())));
- buf.append('"');
- buf.append(this.eol);
- buf.append(this.indent3);
- buf.append('}');
+ buf.append("\"}");
if (i < entrySet.size()) {
buf.append(',');
}
- buf.append(this.eol);
i++;
}
+ buf.append(this.eol);
buf.append(this.indent2);
- buf.append(']');
+ buf.append('}');
}
buf.append(this.eol);
Modified:
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JSONLayoutTest.java
URL:
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JSONLayoutTest.java?rev=1593727&r1=1593726&r2=1593727&view=diff
==============================================================================
---
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JSONLayoutTest.java
(original)
+++
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JSONLayoutTest.java
Sat May 10 20:25:28 2014
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.la
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.util.List;
import java.util.Map;
@@ -129,6 +130,8 @@ public class JSONLayoutTest {
this.checkAt("\"logger\":\"root\",", 2, list);
this.checkAt("\"level\":\"DEBUG\",", 4, list);
this.checkAt("\"message\":\"starting mdc pattern test\",", 6, list);
+ this.checkAt("\"Properties\": {", 41, list);
+ this.checkAt("\"key2\": \"value2\"}", list, 42, 43);
for (Appender app : appenders.values()) {
root.addAppender(app);
}
@@ -167,7 +170,17 @@ public class JSONLayoutTest {
}
private void checkAt(String expected, int lineIndex, List<String> list) {
- final String trimedLine = list.get(lineIndex).trim();
- assertTrue("Incorrect line index " + lineIndex + ": \"" + trimedLine +
'"', trimedLine.equals(expected));
+ final String trimmedLine = list.get(lineIndex).trim();
+ assertTrue("Incorrect line index " + lineIndex + ": \"" + trimmedLine
+ '"', trimmedLine.equals(expected));
+ }
+
+ private void checkAt(String expected, List<String> list, int...
lineIndexes) {
+ for (int lineIndex : lineIndexes) {
+ final String trimmedLine = list.get(lineIndex).trim();
+ if (trimmedLine.startsWith(expected)) {
+ return;
+ }
+ }
+ fail("Incorrect lines. Expected: " + expected);
}
}
Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1593727&r1=1593726&r2=1593727&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/src/changes/changes.xml (original)
+++ logging/log4j/log4j2/trunk/src/changes/changes.xml Sat May 10 20:25:28 2014
@@ -22,6 +22,9 @@
</properties>
<body>
<release version="2.0-rc2" date="2014-MM-DD" description="Bug fixes and
enhancements">
+ <action issue="LOG4J2-623" dev="rgoers" type="fix">
+ Generate MDC properties as a JSON map in JSONLayout.
+ </action>
<action issue="LOG4J2-566" dev="rpopma" type="update" due-to="Luigi
Alice">
Made RollingRandomAccessFileAppender buffer size configurable.
</action>