首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何同时用log4cpp记录多个变量?

如何同时用log4cpp记录多个变量?
EN

Stack Overflow用户
提问于 2012-03-10 10:45:56
回答 1查看 3.3K关注 0票数 3

如何使用log4cpp记录多个字符串?

例如,如果我想将所有的argv记录到main:

代码语言:javascript
复制
#include <iostream>
#include <log4cpp/Category.hh>
#include <log4cpp/FileAppender.hh>
#include <log4cpp/PatternLayout.hh>

using namespace std;

int main(int argc, char* argv[]) {
    log4cpp::Appender *appender = new log4cpp::FileAppender("FileAppender","mylog");
    log4cpp::PatternLayout *layout = new log4cpp::PatternLayout();
    layout->setConversionPattern("%d: %p - %m %n");
    log4cpp::Category& category = log4cpp::Category::getInstance("Category");
    appender->setLayout(layout);
    category.setAppender(appender);
    category.setPriority(log4cpp::Priority::INFO); 

    category.info("program started"); // this works fine, I see it in the logfile

    for(int i=0; i<argc; ++i) {
        // next line does not compile:
        category.info("argv["<<i<<"] = '"<<argv[i]<<"'");
    }

    return 0;
}   

这条线

代码语言:javascript
复制
category.info("argv["<<i<<"] = '"<<argv[i]<<"'");

不编译。显然,记录器不像ostream那样工作。什么是log4cpp way来记录类似的东西,最好是一次记录?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-10 10:59:47

你有两个选择:

  • 使用printf-style formatting

对于(int = 0;i< argc;++i) { category.info("argv%d =‘'%s'",i,argvi);}

  • 使用infoStream()

对于(int i= 0;i< argc;++i) { category.infoStream() << "argv“<< i << =‘<< argvi <<’;}

我会和后者一起去。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9645788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档