【问题标题】:How to enable and disable qDebug() messages如何启用和禁用 qDebug() 消息
【发布时间】:2015-04-16 21:55:20
【问题描述】:

我通过编写禁用 qDebug() 消息

CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT

在 .pro 文件中。这工作正常。我想知道是否有任何方法可以使用源代码启用 qDebug() 消息。我想将它作为参数发送给应用程序。因此,默认情况下,我将禁用 qDebug() 消息,但有一个参数说明打开 qDebug() 消息,我需要启用 qDebug()。可以这样做吗?

感谢任何帮助

【问题讨论】:

  • 您可以查看qInstallMsgHandler文档。
  • @vahancho .pro 文件中的那一行不会为我停止 console.log
  • @mohammadalabid,你为什么将它添加到 .pro 文件中?它应该添加到您的源代码中。请参阅此问题的答案和 Qt 文档:doc.qt.io/qt-5/qtglobal.html#qInstallMessageHandler
  • 我的意思是这一行 CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT

标签: qt qdebug


【解决方案1】:

您可以使用qInstallMsgHandler添加自己的函数来处理Qt调试消息

这将允许您控制是否打印消息。

【讨论】:

    【解决方案2】:

    您可以通过几个选项在运行时控制 QDebug(和所有消息):

    1. QLoggingCategory 允许您使用环境变量或配置文件。例如,使用 Qt 5.6,您可以:QT_LOGGING_RULES="*.debug=false;driver.usb.debug=true" 为除 USB 调试之外的所有内容打开 qDebug。如果您需要更复杂的设置,或者如果您使用的是 Qt 5.5 或更早版本,您可以通过 qtlogging.ini 文件打开和关闭单独的调试消息。
    2. QT_MESSAGE_PATTERN 也可用于控制消息输出以及执行formatting

    【讨论】:

      【解决方案3】:

      将此代码添加到我的 qmake 项目文件启用 qDebug() 消息以在 Windows/MSYS 上发布构建,即使没有 qInstallMsgHandler():

      CONFIG += console
      CONFIG += warn_on
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-26
        相关资源
        最近更新 更多