log4j不会使用unicode字符记录消息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j不会使用unicode字符记录消息相关的知识,希望对你有一定的参考价值。

我有一个Log4j记录器。 当我用这样的字符串调用它时:

logger.info("test case")

它工作正常并记录消息。

但是当我用Unicode字符调用它时:

logger.info("test case €")

它没有记录任何内容,看起来它只是没有被调用。

所以这段代码只打印一条日志消息 - “测试用例”:

 logger.info("test case")
 logger.info("test case €")

我已经读过logger使用系统字符集,如果它没有明确设置,它是UTF-8。 我需要用它记录这个“€”标志和消息。 谢谢。

答案

Log4j默认不打印UTF-16字符,您必须应用显式编码。像* .properties中的log4j.appender.logfile.encoding=UTF-16之类的东西可以解决问题。

以上是关于log4j不会使用unicode字符记录消息的主要内容,如果未能解决你的问题,请参考以下文章

使用 JSON 格式的 log4j 记录 json 字符串消息,而不用引号破坏格式

whatsapp 是如何处理特殊字符、unicode 和 emoji 的

log4j SyslogAppender 不会将日志发送到 syslog

Unicode 详解

如何在 unicode 形式之间进行转换:字符串、名称、数字

c++ 字符编码