Qgis开发17-日志

来源:互联网 发布:电脑没网怎么查mac地址 编辑:程序博客网 时间:2024/05/07 03:34

Qgis开发-日志

sf2gis@163.com

2014年10月18日

 

1  概述

QGIS内部实现一个日志系统,用于输出调试信息。

但是其调试输出到文件时,只能输出单个文件。这里将强化输出到文件的功能,实现输出到卷动文件。

2 原理

QGIS使用QT的qInstallMsgHandler()函数注册qDebug相关的回调函数来实现日志功能。当调用相关的调试函数时,就执行回调函数。回调函数设置相应的输出位置,输出调试信息。

#ifQT_VERSION>=0x050000

    qInstallMessageHandler(gutang::logging::myHandler);

#else

    qInstallMsgHandler(gutang::logging::myHandler);

#endif

3  方法

1)       信息输出:定义QGISDEBUG后,就可以使用QgsDebugMsg(str)输出调试信息。此宏在QGIS的编译信息中定义。使用时总是输出。

2)       定制或屏蔽信息输出:定义环境变量QGIS_DEBUG_FILE,此变量定义输出调试信息的文件,如果不定义或者定义了空值,则全部文件都输出调试信息。如果想要定制调试信息,则此处输入定制文件名称,如果要屏蔽信息,则输入一个不存在文件名。

3)       信息输出位置:默认输出到std::out。定义环境变量QGIS_LOG_FILE后,输出到指定的文件。 但是此文件必须先生成,否则首次使用时会报错。

4)       自定义信息输出:自定义相应的调试回调函数并注册,之后就可以把相关的信息输出自定义的位置。

#ifQT_VERSION>=0x050000
    qInstallMessageHandler(gutang::logging::myHandler);
#else
    qInstallMsgHandler(gutang::logging::myHandler);
#endif

qDebug("mylllll");//output to custom position

参见:..\..\CPP\日志库log.docx中QT logging部分。

4  实现

参考:QgsLogger.h/cpp

 

0 0
原创粉丝点击