Repository: logging-log4j2 Updated Branches: refs/heads/master 6401ee459 -> 2ed5d3789
Refactor common StringBuilder code. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2ed5d378 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2ed5d378 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2ed5d378 Branch: refs/heads/master Commit: 2ed5d378976453f84af55b94d057bc0590c186c7 Parents: 6401ee4 Author: Gary Gregory <[email protected]> Authored: Thu Mar 5 13:44:03 2015 -0800 Committer: Gary Gregory <[email protected]> Committed: Thu Mar 5 13:44:03 2015 -0800 ---------------------------------------------------------------------- .../java/org/apache/log4j/CategoryTest.java | 9 ++- .../log4j/message/BasicThreadInformation.java | 7 +- .../message/ExtendedThreadInformation.java | 4 +- .../logging/log4j/message/MapMessage.java | 9 +-- .../log4j/message/ThreadDumpMessage.java | 3 +- .../org/apache/logging/log4j/util/Chars.java | 7 +- .../logging/log4j/util/StringBuilders.java | 67 ++++++++++++++++++++ .../org/apache/logging/log4j/util/Strings.java | 12 ++++ .../core/config/plugins/util/PluginBuilder.java | 6 +- .../visitors/PluginAttributeVisitor.java | 3 +- .../visitors/PluginBuilderAttributeVisitor.java | 3 +- .../plugins/visitors/PluginValueVisitor.java | 3 +- .../log4j/core/layout/Rfc5424Layout.java | 9 ++- .../server/JsonInputStreamLogEventBridge.java | 3 +- .../log4j/core/util/OptionConverter.java | 5 +- .../log4j/core/layout/JsonLayoutTest.java | 9 ++- .../log4j/core/layout/PatternLayoutTest.java | 9 ++- 17 files changed, 137 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java ---------------------------------------------------------------------- diff --git a/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java b/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java index 404a9db..3d9318a 100644 --- a/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java +++ b/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java @@ -17,6 +17,10 @@ package org.apache.log4j; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import java.lang.reflect.Method; import java.util.List; @@ -29,13 +33,12 @@ import org.apache.logging.log4j.core.util.Constants; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.ObjectMessage; import org.apache.logging.log4j.test.appender.ListAppender; +import org.apache.logging.log4j.util.Strings; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.*; - /** * Tests of Category. @@ -179,7 +182,7 @@ public class CategoryTest { appender.clear(); final String threadName = Thread.currentThread().getName(); final String expected = "ERROR o.a.l.CategoryTest [" + threadName + "] Test Message" + Constants.LINE_SEPARATOR; - assertTrue("Incorrect message \"" + msg + '"' + " expected \"" + expected + '"', msg.endsWith(expected)); + assertTrue("Incorrect message " + Strings.dquote(msg) + " expected " + Strings.dquote(expected), msg.endsWith(expected)); } /** http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-api/src/main/java/org/apache/logging/log4j/message/BasicThreadInformation.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/BasicThreadInformation.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/BasicThreadInformation.java index f36fda3..d0ec092 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/BasicThreadInformation.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/BasicThreadInformation.java @@ -16,6 +16,9 @@ */ package org.apache.logging.log4j.message; +import org.apache.logging.log4j.util.Chars; +import org.apache.logging.log4j.util.StringBuilders; + /** * Generates information about the current Thread. Used internally by ThreadDumpMessage. */ @@ -81,13 +84,13 @@ class BasicThreadInformation implements ThreadInformation { */ @Override public void printThreadInfo(final StringBuilder sb) { - sb.append('"').append(name).append("\" "); + StringBuilders.appendDqValue(sb, name).append(Chars.SPACE); if (isDaemon) { sb.append("daemon "); } sb.append("prio=").append(priority).append(" tid=").append(id).append(' '); if (threadGroupName != null) { - sb.append("group=\"").append(threadGroupName).append('"'); + StringBuilders.appendKeyDqValue(sb, "group", threadGroupName); } sb.append('\n'); sb.append("\tThread state: ").append(state.name()).append('\n'); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-api/src/main/java/org/apache/logging/log4j/message/ExtendedThreadInformation.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ExtendedThreadInformation.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ExtendedThreadInformation.java index c7b30db..7d54acb 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ExtendedThreadInformation.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ExtendedThreadInformation.java @@ -20,6 +20,8 @@ import java.lang.management.LockInfo; import java.lang.management.MonitorInfo; import java.lang.management.ThreadInfo; +import org.apache.logging.log4j.util.StringBuilders; + /** * Provides information on locks and monitors in the thread dump. This class requires Java 1.6 to compile and * run. @@ -35,7 +37,7 @@ class ExtendedThreadInformation implements ThreadInformation { @Override public void printThreadInfo(final StringBuilder sb) { - sb.append('"').append(threadInfo.getThreadName()).append('"'); + StringBuilders.appendDqValue(sb, threadInfo.getThreadName()); sb.append(" Id=").append(threadInfo.getThreadId()).append(' '); formatState(sb, threadInfo); if (threadInfo.isSuspended()) { http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java index 4cbef35..5985783 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java @@ -22,6 +22,7 @@ import java.util.SortedMap; import java.util.TreeMap; import org.apache.logging.log4j.util.EnglishEnums; +import org.apache.logging.log4j.util.StringBuilders; import org.apache.logging.log4j.util.Strings; /** @@ -248,7 +249,7 @@ public class MapMessage implements MultiformatMessage { sb.append(' '); } first = false; - sb.append(entry.getKey()).append("=\"").append(entry.getValue()).append('"'); + StringBuilders.appendKeyDqValue(sb, entry); } } @@ -260,8 +261,8 @@ public class MapMessage implements MultiformatMessage { sb.append(", "); } first = false; - sb.append('"').append(entry.getKey()).append("\":"); - sb.append('"').append(entry.getValue()).append('"'); + StringBuilders.appendDqValue(sb, entry.getKey()).append(':'); + StringBuilders.appendDqValue(sb, entry.getValue()); } sb.append('}'); } @@ -275,7 +276,7 @@ public class MapMessage implements MultiformatMessage { sb.append(", "); } first = false; - sb.append(entry.getKey()).append("=\"").append(entry.getValue()).append('"'); + StringBuilders.appendKeyDqValue(sb, entry); } sb.append('}'); } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java index 792fcd1..df05709 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java @@ -26,6 +26,7 @@ import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; +import org.apache.logging.log4j.util.StringBuilders; import org.apache.logging.log4j.util.Strings; /** @@ -73,7 +74,7 @@ public class ThreadDumpMessage implements Message { public String toString() { final StringBuilder sb = new StringBuilder("ThreadDumpMessage["); if (this.title.length() > 0) { - sb.append("Title=\"").append(this.title).append('"'); + StringBuilders.appendKeyDqValue(sb, "Title", this.title); } sb.append(']'); return sb.toString(); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-api/src/main/java/org/apache/logging/log4j/util/Chars.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/Chars.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/Chars.java index 4f52fe4..b2efb1c 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/util/Chars.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Chars.java @@ -21,9 +21,12 @@ package org.apache.logging.log4j.util; */ public class Chars { + public static final char CR = '\r'; + public static final char DQUOTE = '\"'; + public static final char EQ = '='; + public static final char LF = '\n'; + public static final char QUOTE = '\''; public static final char SPACE = ' '; public static final char TAB = '\t'; - public static final char QUOTE = '\''; - public static final char DQUOTE = '\"'; } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java new file mode 100644 index 0000000..f21f385 --- /dev/null +++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache license, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the license for the specific language governing permissions and + * limitations under the license. + */ +package org.apache.logging.log4j.util; + +import java.util.Map.Entry; + +/** + * <em>Consider this class private.</em> + */ +public class StringBuilders { + + /** + * Appends in the following format: double quoted value. + * + * @param sb + * a string builder + * @param value + * a value + * @return {@code "value"} + */ + public static StringBuilder appendDqValue(StringBuilder sb, Object value) { + return sb.append(Chars.DQUOTE).append(value).append(Chars.DQUOTE); + } + + /** + * Appends in the following format: key=double quoted value. + * + * @param sb + * a string builder + * @param entry + * a map entry + * @return {@code key="value"} + */ + public static StringBuilder appendKeyDqValue(StringBuilder sb, Entry<String, String> entry) { + return appendKeyDqValue(sb, entry.getKey(), entry.getValue()); + } + + /** + * Appends in the following format: key=double quoted value. + * + * @param sb + * a string builder + * @param key + * a key + * @param value + * a value + * @return {@code key="value"} + */ + public static StringBuilder appendKeyDqValue(StringBuilder sb, String key, Object value) { + return sb.append(key).append(Chars.EQ).append(Chars.DQUOTE).append(value).append(Chars.DQUOTE); + } + +} http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java index 640df36..8ff6ba5 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java @@ -143,9 +143,21 @@ public final class Strings { * Returns a quoted string. * * @param str + * a String * @return {@code 'str'} */ public static String quote(final String str) { return Chars.QUOTE + str + Chars.QUOTE; } + + /** + * Returns a double quoted string. + * + * @param str + * a String + * @return {@code "str"} + */ + public static String dquote(final String str) { + return Chars.DQUOTE + str + Chars.DQUOTE; + } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java index 43b34fe..5730c45 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java @@ -44,6 +44,8 @@ import org.apache.logging.log4j.core.util.Builder; import org.apache.logging.log4j.core.util.ReflectionUtil; import org.apache.logging.log4j.core.util.TypeUtil; import org.apache.logging.log4j.status.StatusLogger; +import org.apache.logging.log4j.util.Chars; +import org.apache.logging.log4j.util.StringBuilders; /** * Builder class to instantiate and configure a Plugin object using a PluginFactory method or PluginBuilderFactory @@ -302,9 +304,7 @@ public class PluginBuilder implements Builder<Object> { } else { sb.append(", "); } - sb.append('"'); - sb.append(key); - sb.append('"'); + StringBuilders.appendDqValue(sb, key); } LOGGER.error(sb.toString()); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java index 0c2d5ec..63e5cb5 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java @@ -24,6 +24,7 @@ import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.Node; import org.apache.logging.log4j.core.config.plugins.PluginAttribute; import org.apache.logging.log4j.core.util.NameUtil; +import org.apache.logging.log4j.util.StringBuilders; /** * PluginVisitor implementation for {@link PluginAttribute}. @@ -43,7 +44,7 @@ public class PluginAttributeVisitor extends AbstractPluginVisitor<PluginAttribut final Object defaultValue = findDefaultValue(event); final Object value = convert(replacedValue, defaultValue); final Object debugValue = this.annotation.sensitive() ? NameUtil.md5(value + this.getClass().getName()) : value; - log.append(name).append("=\"").append(debugValue).append('"'); + StringBuilders.appendKeyDqValue(log, "name", debugValue); return value; } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginBuilderAttributeVisitor.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginBuilderAttributeVisitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginBuilderAttributeVisitor.java index d0bcff2..0856e46 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginBuilderAttributeVisitor.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginBuilderAttributeVisitor.java @@ -24,6 +24,7 @@ import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.Node; import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; import org.apache.logging.log4j.core.util.NameUtil; +import org.apache.logging.log4j.util.StringBuilders; /** * PluginVisitor for PluginBuilderAttribute. If {@code null} is returned for the @@ -48,7 +49,7 @@ public class PluginBuilderAttributeVisitor extends AbstractPluginVisitor<PluginB final String replacedValue = this.substitutor.replace(event, rawValue); final Object value = convert(replacedValue, null); final Object debugValue = this.annotation.sensitive() ? NameUtil.md5(value + this.getClass().getName()) : value; - log.append(name).append("=\"").append(debugValue).append('"'); + StringBuilders.appendKeyDqValue(log, "name", debugValue); return value; } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginValueVisitor.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginValueVisitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginValueVisitor.java index 4173abe..bf27566 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginValueVisitor.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginValueVisitor.java @@ -21,6 +21,7 @@ import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.Node; import org.apache.logging.log4j.core.config.plugins.PluginValue; +import org.apache.logging.log4j.util.StringBuilders; /** * PluginVisitor implementation for {@link PluginValue}. @@ -37,7 +38,7 @@ public class PluginValueVisitor extends AbstractPluginVisitor<PluginValue> { final String rawValue = node.getValue() != null ? node.getValue() : removeAttributeValue(node.getAttributes(), "value"); final String value = this.substitutor.replace(event, rawValue); - log.append(name).append("=\"").append(value).append('"'); + StringBuilders.appendKeyDqValue(log, name, value); return value; } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java index e1c9399..18ea7ae 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java @@ -53,6 +53,8 @@ import org.apache.logging.log4j.core.util.Patterns; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.StructuredDataId; import org.apache.logging.log4j.message.StructuredDataMessage; +import org.apache.logging.log4j.util.Chars; +import org.apache.logging.log4j.util.StringBuilders; import org.apache.logging.log4j.util.Strings; @@ -532,7 +534,7 @@ public final class Rfc5424Layout extends AbstractStringLayout { } private void appendMap(final String prefix, final Map<String, String> map, final StringBuilder sb, - final ListChecker checker) { + final ListChecker checker) { final SortedMap<String, String> sorted = new TreeMap<String, String>(map); for (final Map.Entry<String, String> entry : sorted.entrySet()) { if (checker.check(entry.getKey()) && entry.getValue() != null) { @@ -540,8 +542,9 @@ public final class Rfc5424Layout extends AbstractStringLayout { if (prefix != null) { sb.append(prefix); } - sb.append(escapeNewlines(escapeSDParams(entry.getKey()), escapeNewLine)).append("=\"") - .append(escapeNewlines(escapeSDParams(entry.getValue()), escapeNewLine)).append('"'); + final String safeKey = escapeNewlines(escapeSDParams(entry.getKey()), escapeNewLine); + final String safeValue = escapeNewlines(escapeSDParams(entry.getValue()), escapeNewLine); + StringBuilders.appendKeyDqValue(sb, safeKey, safeValue); } } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JsonInputStreamLogEventBridge.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JsonInputStreamLogEventBridge.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JsonInputStreamLogEventBridge.java index dbfa755..1b81644 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JsonInputStreamLogEventBridge.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JsonInputStreamLogEventBridge.java @@ -21,6 +21,7 @@ import java.nio.charset.Charset; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.jackson.Log4jJsonObjectMapper; +import org.apache.logging.log4j.util.Chars; /** * Reads and logs JSON {@link LogEvent}s from an {@link InputStream}.. @@ -31,7 +32,7 @@ public class JsonInputStreamLogEventBridge extends InputStreamLogEventBridge { private static final char EVENT_END_MARKER = '}'; private static final char EVENT_START_MARKER = '{'; private static final char JSON_ESC = '\\'; - private static final char JSON_STR_DELIM = '"'; + private static final char JSON_STR_DELIM = Chars.DQUOTE; public JsonInputStreamLogEventBridge() { this(1024, Charset.defaultCharset()); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java index 6203b70..aad31be 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java @@ -22,6 +22,7 @@ import java.util.Properties; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.status.StatusLogger; import org.apache.logging.log4j.util.PropertiesUtil; +import org.apache.logging.log4j.util.Strings; /** * A convenience class to convert property values to specific types. @@ -300,8 +301,8 @@ public final class OptionConverter { sbuf.append(val.substring(i, j)); k = val.indexOf(DELIM_STOP, j); if (k == -1) { - throw new IllegalArgumentException('"' + val + - "\" has no closing brace. Opening brace at position " + j + throw new IllegalArgumentException(Strings.dquote(val) + + " has no closing brace. Opening brace at position " + j + '.'); } j += DELIM_START_LEN; http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java index b043660..ecc083b 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java @@ -16,6 +16,10 @@ */ package org.apache.logging.log4j.core.layout; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + import java.util.List; import java.util.Map; @@ -34,13 +38,12 @@ import org.apache.logging.log4j.core.util.Throwables; import org.apache.logging.log4j.message.SimpleMessage; import org.apache.logging.log4j.spi.AbstractLogger; import org.apache.logging.log4j.test.appender.ListAppender; +import org.apache.logging.log4j.util.Strings; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.*; - /** * Tests the JsonLayout class. */ @@ -69,7 +72,7 @@ public class JsonLayoutTest { private void checkAt(final String expected, final int lineIndex, final List<String> list) { final String trimedLine = list.get(lineIndex).trim(); - assertTrue("Incorrect line index " + lineIndex + ": \"" + trimedLine + '"', trimedLine.equals(expected)); + assertTrue("Incorrect line index " + lineIndex + ": " + Strings.dquote(trimedLine), trimedLine.equals(expected)); } private void checkContains(final String expected, final List<String> list) { http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ed5d378/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java index fe50790..0486d1e 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java @@ -16,6 +16,10 @@ */ package org.apache.logging.log4j.core.layout; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import java.nio.charset.Charset; import org.apache.logging.log4j.Level; @@ -29,12 +33,11 @@ import org.apache.logging.log4j.core.config.ConfigurationFactory; import org.apache.logging.log4j.core.impl.Log4jLogEvent; import org.apache.logging.log4j.core.util.Charsets; import org.apache.logging.log4j.message.SimpleMessage; +import org.apache.logging.log4j.util.Strings; import org.junit.After; import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.*; - /** * */ @@ -170,7 +173,7 @@ public class PatternLayoutTest { ThreadContext.put("footer", "Hello world Footer"); final byte[] header = layout.getHeader(); assertNotNull("No header", header); - assertTrue("expected \"Hello world Header\", actual \"" + new String(header) + '"', + assertTrue("expected \"Hello world Header\", actual " + Strings.dquote(new String(header)), new String(header).equals(new String("Hello world Header"))); }
