Я хотел бы создать простой макрос, который делает то, что _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")
У кого-нибудь есть идеи, как это сделать?
Вы должны создать такую функцию:
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");