Easylogging ++如何配置单个宏?

时间:2014-11-11 03:22:07

标签: c++ logging macros easylogging++

我想创建一个简单的宏来执行_INITIALIZE_EASYLOGGINGPP所做的事情,但是接受像这样的配置字符串:

"*GLOBAL:\nFILENAME = my_app.log\nFORMAT = %datetime{%Y.%M.%d-%H.%m.%s.%g}, %level, %msg\n*INFO:\n ENABLED=false"

然后宏将替换:

_INITIALIZE_EASYLOGGINGPP

通过

INITIALIZE_ELPP_WITH_CONFIG("myconfigstring")

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:2)

你应该创建一个像这样的函数:

void initializeLogs(const char* config_string)
{
    _INITIALIZE_EASYLOGGINGPP
   easyloggingpp::Configurations c;
   c.setToDefault();
   c.parseFromText(config_string);
   easyloggingpp::Loggers::reconfigureAllLoggers(confFromFile);
}

然后致电:

initializeLogs("*GLOBAL:\nFILENAME = my_app.log\nFORMAT = %datetime{%Y.%M.%d-%H.%m.%s.%g}, %level, %msg\n*INFO:\n ENABLED=false");