log4cplus中文路径和写中文日志问题

1、编译log4cplus时选择多字节

2、配置文件使用ANSI

3、配置Encoding=utf-8

配置文件如下 

代码:

    log4cplus::initialize();
    

    log4cplus::PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT("log4Cfg.ini"));
    log4cplus::Logger logger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("TestSoftCommunicate"));
    auto tmp1 = logger.getAllAppenders();
    auto tmp2 = logger.getCurrentLoggers();

    //for (int i = 0; i < 5000; i++)
    {
        LOG4CPLUS_TRACE(logger, LOG4CPLUS_TEXT("TRACE-LOG-TEST"));
        LOG4CPLUS_DEBUG(logger, LOG4CPLUS_TEXT("DEBUG-LOG-TEST"));
        LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("INFO-LOG-TEST"));
        LOG4CPLUS_WARN(logger, ("warn_中文测试"));
        LOG4CPLUS_ERROR(logger, LOG4CPLUS_STRING_TO_TSTRING("Error_中文测试"));
        LOG4CPLUS_FATAL(logger, LOG4CPLUS_TEXT("FATAL-LOG-TEST"));
    }
    log4cplus::Logger::shutdown();

若项目使用UNICODE,需要以下几步

1、使用unicode编译log4cplus.dll

2、配置文件使用ANSI

3、配置Encoding=utf-8

4、需要在使用log4cplus之前调用一次std::locale::global(std::locale(""));

5、输出日志时使用

 LOG4CPLUS_WARN(logger, LOG4CPLUS_TEXT("warn_中文测试"));

或者
 LOG4CPLUS_ERROR(logger, LOG4CPLUS_STRING_TO_TSTRING("Error_中文测试"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值