我正在尝试编写一个宏来简化 LOG4CPLUS 的使用。但是在编写宏时遇到了一些麻烦。
这是我的 cpp 文件中的内容:
Logger logger = Logger::getInstance("ManagerServer");
之后,我可以像这样记录一行:
LOG4CPLUS_ERROR(logger, logEvent);
我只想写一个宏,而不是我可以将 logEvent 更改为一些变量参数。并像这样使用:
LogErr("failed");
LogErr("failed times %d", iTimes);
所以,我这样写:
#define LogErr(fmt, args...)\
do {\
char szBuf[MAX_LOG_BUFFER_SIZE];\
memset(szBuf, 0, MAX_LOG_BUFFER_SIZE); \
vsnprintf(szBuf, MAX_LOG_BUFFER_SIZE, fmt, ##args); \
LOG4CPLUS_ERROR(logger, szBuf);\
} while(0)
但是当我编译时。g++ 给我这个信息:
错误:“)”标记之前的预期主表达式
有没有人可以帮助我?对此,我真的非常感激。