常规的qt调试需要在应用程序栏输出调试信息,即,qDebug()<<...
若很多地方都要有此类输出,当我们不想要某一类的输出时就需要一行一行的屏蔽,很不方便哦。
此时我们可以定义一个宏,对不同的调试输出做控制。当不需要此类输出时屏蔽宏即可,不用每一个调试输出都进行屏蔽。
有可以调试输出,也需要一个输出空的函数NullDebug。
老规矩,上宏
class NullDebug
{
public:
template<typename T>
NullDebug & operator <<(const T&){return *this;}
};
inline NullDebug nullDebug(){return NullDebug();}
#define LOG_TIMI
#ifdef LOG_TIMI
# define TIMI_DEBUG qDebug()<< "timidebug output:"
#else
# define TIMI_DEBUG nulldebug()
#endif
这时候我们就可以使用
TIMI_DEBUG<<123;
// 输出为: timidebug output:123
当不需要这类的输出时,只需要屏蔽
#define LOG_TIMI
这个宏定义即可。其他的调试输出就不会受到影响了。
当然这种调试信息最好在一个头文件中控制,更加方便,不至于调试时失去控制。
~~~~end~~~~