如何将 log4cplus 日志文件更改为 utf8

Posted

技术标签:

【中文标题】如何将 log4cplus 日志文件更改为 utf8【英文标题】:how to change log4cplus log file to utf8 【发布时间】:2014-06-26 04:34:24 【问题描述】:

我收到了一个使用 log4cplus 作为记录器应用程序的代码。如何为其生成 UTF8 日志记录文件? log4cplus 创建的日志文件目前是 ASCII 格式。

我试过了

按照Change File Encoding to utf-8 via vim in a script的说明设置日志文件的文件编码

vi dataLog.txt
:set bomb
:set fileencoding=utf-8
:wq

我也尝试过更改 .properties 文件

log4cplus.logger.dl=TRACE,DATA

log4cplus.appender.DATA=log4cplus::RollingFileAppender
log4cplus.appender.DATA.Locale=en-US
log4cplus.appender.DATA.File=/usr/vm/log/data/dataLog.txt
log4cplus.appender.DATA.MaxFileSize=5000KB
log4cplus.appender.DATA.MaxBackupIndex=5
log4cplus.appender.DATA.layout=log4cplus::PatternLayout
log4cplus.appender.DATA.layout.ConversionPattern=%D%d/%b/%y %H:%M:%S.%q %-9c %-5p %m%n

我不确定 log4cplus 的确切版本,但是定位结果如下

/usr/lib/liblog4cplus-1.0.so.4
/usr/lib/liblog4cplus-1.0.so.4.0.0
/usr/lib/liblog4cplus-1.0.so.4.0.0_load
/usr/lib/liblog4cplus.so

【问题讨论】:

【参考方案1】:

从 log4cplus 1.1.0-RC10 开始,您可以将语言环境指定到文件附加程序使用的 std::filestream 中。请参阅FileAppender documentation,尤其是Locale 属性。在你的情况下,试着用en_US.UTF-8 灌输它。

【讨论】:

以上是关于如何将 log4cplus 日志文件更改为 utf8的主要内容,如果未能解决你的问题,请参考以下文章

使用Log4Cplus+配置文件打印日志

log4cplus在项目中的使用

log4cplus使用

如何将我的节点 winston JSON 输出更改为单行

为啥我的 View 是 utf8 以及如何将其更改为 latin1

get-winevent:将格式文件更改为 groupby 日志名无效