如何使用log4cpp记录多个字符串?
例如,如果我想将所有的argv记录到main:
#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;
} 这条线
category.info("argv["<<i<<"] = '"<<argv[i]<<"'");不编译。显然,记录器不像ostream那样工作。什么是log4cpp way来记录类似的东西,最好是一次记录?
发布于 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 <<’;}
我会和后者一起去。
https://stackoverflow.com/questions/9645788
复制相似问题