Details
Description
According to log4j2's manual about PatternLayout's charset attribute, if the attribute is not specified, the default system Charset will be used.
But in my environemnt (Win8 Simplified Chinese + Tomcat 7), if the attribute is not specified, the Chinese words cannot display properly in console. If I add charset="UTF-8" to <Console>'s <PatternLayout> element, the error still exists. But if I modify it to charset="GBK", the problem can be resolved.
So I think, The default charset is UTF-8, not the default system Charset as the manual announced. I got the source file, and found it in PatternLayout's Builder inner class:
private Charset charset = Charsets.UTF_8;
I modify it to:
private Charset charset = Charset.defaultCharset();
and remove the charset attribute in XML's <PatternLayout> element, the Chinese words can display properly as expected.
So, I think it may be a bug and reported it here.
Thanks!
Attachments
Issue Links
- relates to
-
LOG4J2-3372 ConsoleAppender on Windows does not use platform default encoding
- Open
-
LOG4J2-1636 Console Appender does not pick up Oracle Java 8's sun.stdout.encoding and sun.stderr.encoding
- Resolved