Not quite right IMO, should be if charset == null then charset = Charset.defaultCharset (). Gary
-------- Original message -------- From: [email protected] Date: 10/06/2015 06:34 (GMT-08:00) To: [email protected] Subject: [1/2] logging-log4j2 git commit: LOG4J2-783 code cleanup: removed old/misleading reference to UTF-8 charset Repository: logging-log4j2 Updated Branches: refs/heads/master 868f15f9b -> 8b914119e LOG4J2-783 code cleanup: removed old/misleading reference to UTF-8 charset PatternLayout should and does use the platform default charset. The createLayout() factory method specified UTF-8 as the default charset, which is misleading and confusing for developers, so I removed the default and added a comment. This was not a real problem because XmlConfiguration uses PatternLayout.Builder and not the factory method, so in reality the platform default charset was correctly being used if no charset is specified. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/93e937b6 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/93e937b6 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/93e937b6 Branch: refs/heads/master Commit: 93e937b6330b11411aa7b8f61804d424c6bcc346 Parents: 868f15f Author: rpopma <[email protected]> Authored: Tue Oct 6 15:21:47 2015 +0200 Committer: rpopma <[email protected]> Committed: Tue Oct 6 15:21:47 2015 +0200 ---------------------------------------------------------------------- .../apache/logging/log4j/core/layout/PatternLayout.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/93e937b6/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java index 9874af0..6c57820 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java @@ -238,7 +238,7 @@ public final class PatternLayout extends AbstractStringLayout { * @param replace * A Regex replacement String. * @param charset - * The character set. + * The character set. The platform default is used if not specified. * @param alwaysWriteExceptions * If {@code "true"} (default) exceptions are always written even if the pattern contains no exception tokens. * @param noConsoleNoAnsi @@ -255,7 +255,8 @@ public final class PatternLayout extends AbstractStringLayout { @PluginElement("PatternSelector") final PatternSelector patternSelector, @PluginConfiguration final Configuration config, @PluginElement("Replace") final RegexReplacement replace, - @PluginAttribute(value = "charset", defaultString = "UTF-8") final Charset charset, + // LOG4J2-783 use platform default by default, so do not specify defaultString for charset + @PluginAttribute(value = "charset") final Charset charset, @PluginAttribute(value = "alwaysWriteExceptions", defaultBoolean = true) final boolean alwaysWriteExceptions, @PluginAttribute(value = "noConsoleNoAnsi", defaultBoolean = false) final boolean noConsoleNoAnsi, @PluginAttribute("header") final String header, @@ -395,7 +396,10 @@ public final class PatternLayout extends AbstractStringLayout { } public Builder withCharset(final Charset charset) { - this.charset = charset; + // LOG4J2-783 if null, use platform default by default + if (charset != null) { + this.charset = charset; + } return this; }
