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 2015/05/19 02:08:09 UTC
logging-log4j2 git commit: LOG4J2-1022 - create the list of keys at
initialization
Repository: logging-log4j2
Updated Branches:
refs/heads/master d6cfb59c7 -> 763165d2d
LOG4J2-1022 - create the list of keys at initialization
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/763165d2
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/763165d2
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/763165d2
Branch: refs/heads/master
Commit: 763165d2d328a05f341bc4cdb83090bd8c7a13a7
Parents: d6cfb59
Author: Ralph Goers <rg...@nextiva.com>
Authored: Mon May 18 17:07:57 2015 -0700
Committer: Ralph Goers <rg...@nextiva.com>
Committed: Mon May 18 17:07:57 2015 -0700
----------------------------------------------------------------------
.../log4j/core/pattern/MdcPatternConverter.java | 33 +++++++++++++++-----
1 file changed, 25 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/763165d2/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
index e33b89a..50990a6 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
@@ -37,6 +37,8 @@ public final class MdcPatternConverter extends LogEventPatternConverter {
* Name of property to output.
*/
private final String key;
+ private final String[] keys;
+ private final boolean full;
/**
* Private constructor.
@@ -45,7 +47,20 @@ public final class MdcPatternConverter extends LogEventPatternConverter {
*/
private MdcPatternConverter(final String[] options) {
super(options != null && options.length > 0 ? "MDC{" + options[0] + '}' : "MDC", "mdc");
- key = options != null && options.length > 0 ? options[0] : null;
+ if (options != null && options.length > 0) {
+ full = false;
+ if (options[0].indexOf(',') > 0) {
+ keys = options[0].split(",");
+ key = null;
+ } else {
+ keys = null;
+ key = options[0];
+ }
+ } else {
+ full = true;
+ key = null;
+ keys = null;
+ }
}
/**
@@ -66,9 +81,7 @@ public final class MdcPatternConverter extends LogEventPatternConverter {
final Map<String, String> contextMap = event.getContextMap();
// if there is no additional options, we output every single
// Key/Value pair for the MDC in a similar format to Hashtable.toString()
- if (key == null) {
-
-
+ if (full) {
if (contextMap == null || contextMap.isEmpty()) {
toAppendTo.append("{}");
return;
@@ -84,9 +97,13 @@ public final class MdcPatternConverter extends LogEventPatternConverter {
}
sb.append('}');
toAppendTo.append(sb);
- } else if (contextMap != null) {
- if (key.indexOf(',') > 0) {
- String[] keys = key.split(",");
+ } else {
+ if (keys != null) {
+ if (contextMap == null || contextMap.isEmpty()) {
+ toAppendTo.append("{}");
+ return;
+ }
+ // Print all the keys in the array that have a value.
final StringBuilder sb = new StringBuilder("{");
for (String key : keys) {
key = key.trim();
@@ -99,7 +116,7 @@ public final class MdcPatternConverter extends LogEventPatternConverter {
}
sb.append('}');
toAppendTo.append(sb);
- } else {
+ } else if (contextMap != null){
// otherwise they just want a single key output
final Object val = contextMap.get(key);