log4j 不记录带有 unicode 字符的消息

log4j doesn't log message with unicode characters

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

logger.info("test case")

它工作正常并记录消息。

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

logger.info("test case €")

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

所以这段代码将只打印一条日志消息 - "test case":

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

我读到记录器在未明确设置的情况下使用系统字符集,它是 UTF-8。
我需要记录这个“€”符号并用它发送消息。
谢谢。

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