做项目免不了qDebug打印调试信息。随着项目的完善,于是在控制台看到到处都是qDebug的信息,这不但影响程序的效率,而且也不容易定位真正的错误信息。于是想到了QT中可以屏蔽qDebug打印调试信息,然后在项目中调试的时候用qDebug项目完结把它屏蔽掉就OK。下面是我使用宏自定义的输出格式:

#ifndef OUT_FORMAT
#define OUT_FORMAT "{ FILE:["<<__FILE__<<"] LINE:"<<__LINE__<<" func:"<<__func__<< " }: "
#endif

#ifndef DEBUG
#define DEBUG qDebug()<<OUT_FORMAT
#endif

#ifndef WARNING
#define WARNING qWarning()<<OUT_FORMAT
#endif

打印结果如下:

Qt屏蔽qDebug打印_qt

此时,若是项目结束,只需要在pro文件中添加:

DEFINES += QT_NO_DEBUG_OUTPUT

 然后整个项目执行 clean --->rebluild就把调试的屏蔽掉了,保留下来的就是你想要的打印信息。

Qt屏蔽qDebug打印_qt_02

当然这只是很简单的方式。一个完善的项目需要有一个好的log系统。