做项目免不了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
打印结果如下:
此时,若是项目结束,只需要在pro文件中添加:
DEFINES += QT_NO_DEBUG_OUTPUT
然后整个项目执行 clean --->rebluild就把调试的屏蔽掉了,保留下来的就是你想要的打印信息。
当然这只是很简单的方式。一个完善的项目需要有一个好的log系统。