我的应用程序有不同的部分调用记录器函数来记录详细信息。
记录器类
std::string filename = "blahblah"; // variable to store the location of the properties file
log4cpp::PropertyConfigurator::configure(filename);
void Logger::logging(const std::string& msg)
{
Log4cpp::Category& myLogger = log4cpp::Category::getRoot();
myLogger.log(log4cpp::Priority::INFO, msg);//only takes in string as input
}
调用类
Logger logMe;
int a = 5;
double b = 6;
logMe.logging("log this msg" + a + "," + b);
我意识到上述内容会给我带来错误,因为a
它们b
是不同类型的。解决它的一种方法是使用std::to_string
logMe.logging("log this msg" + std::to_string(a) + "," + std::to_string(b));
但是,我对日志记录功能有数百次调用,并且每次对std::to_string
. 有没有更简单的方法来做到这一点?
哦,澄清一下,代码之前的工作方式是定义#define 函数。
#Define logging(FLAG, X)\
do {\
...
clog << x; \
}while(0)
logging(LogFlag::Warning, "log this msg" << a << "," << b << endl);
但我现在正在重写部分代码以符合静态测试。
提前致谢。