最近在 Linux 下使用 log4cxx 库,使用的 log4cxx 版本为 0.10.0,结果无法显示中文日志信息。
这可怎么办呢?我不可能把中文日志全部一行一行替换为英文的,这可是一个非常傻B的举动。
经过研究,终于知道需要经过如下步骤才能让 log4cxx 在 Linux 下正常显示中文日志:
$ locale
$ export LC_ALL="zh_CN.UTF-8"
如果你的系统提示说没有安装本字符集,则需要用命令进行安装:
$ sudo apt-get install language-pack-zh-hans
LoggerPtr logger;
log4cxx::PropertyConfigurator::configure("./log4cxx.properties");
logger= Logger::getLogger("test") ;
logger->info(("Start logging"));
setlocale(LC_ALL, "zh_CN.UTF-8");
关键是最后这一句 setlocale,要设置得和终端一样,都是 zh_CN.UTF-8。
这样,你的程序就可以用 log4cxx0.10.0 输出中文日志信息了。
[...] 虽然你的程序可能依赖大量的跨平台库,这些库号称是跨平台的,但是很有可能在不同的平台的表现,会有所不同。例如,log4cxx 在 Linux 和 Windows 下就会有字符集设置的差别。 [...]