2010-06-17 74 views
2

我需要自动将方法名添加到某些日志消息。我一直在使用__FUNCTION__这样做,但它会生成方法的全限定名(namespace :: class:method)。所以它浪费了很多空间,使得日志的可读性降低。有什么方法可以在MACRO中仅附加方法名称,没有任何不必要的限定符?在宏中生成方法名称

回答

1

如果你的日志代码如下所示:

#define LOGCALL \ 
    clog << "Called " << MyTrim(__FUNCTION__) << endl; 
1

编写一个函数,需要一个:

#define LOGCALL \ 
    clog << "Called " << __FUNCTION__ << endl; 

然后根据需要,说你可以简单的写一个全局函数修剪函数名char *参数并返回一个指向其中的函数名称的指针。 然后写

MyFunction(FUNCTION) 

而不是

FUNCTION 

这还具有以下优点,可以动态短期和长期名称之间切换。