如何禁用 qInfo() 输出



我有下面的代码片段要运行。其中我想看到 qDebug(( 的结果,但我不想看到 qInfo(( 的结果。我想在基础上配置它,所以我需要那些 qInfo(( 输出,有时不需要。

qInfo()<<"Info print";
qDebug()<<"Debug print";

在上面的代码中,我只想打印"调试打印"。 但不能注释 qInfo(( 行。

正如Qt调试文档中所描述的,您必须使用QT_NO_INFO_OUTPUT进行编译才能禁用它。

# your .pro file
DEFINES += QT_DEPRECATED_WARNINGS QT_NO_INFO_OUTPUT

您还可以对其他宏使用 define :

qDebug(): 使用QT_NO_DEBUG_OUTPUT
禁用qInfo(): 禁用QT_NO_INFO_OUTPUT
qWarning(): 禁用QT_NO_WARNING_OUTPUT
qCritical(): 使用QT_FATAL_CRITICALS启用

您可以在运行时选择启用哪个类别(即使是自定义类别(,QLoggingCategory::setFilterRules

从Qt Docs,使用自定义类别进行考试:

QLoggingCategory::setFilterRules(QStringLiteral("driver.usb.debug=true"));

对于您的情况:

QLoggingCategory::setFilterRules(QStringLiteral("*.info=false"));

注意使用"*.info=true"因为启用所有内容,即使对于分析类别通常禁用

相关内容

  • 没有找到相关文章

最新更新