如何启用和禁用 qDebug() 消息

How to enable and disable qDebug() messages

我通过编写

来禁用 qDebug() 消息
CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT

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

感谢任何帮助

您可以使用 qInstallMsgHandler

添加自己的函数来处理 Qt 调试消息

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

您可以通过几个选项在运行时控制 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 can also be used to control message output as well as doing formatting.

将此代码添加到我的 qmake 项目文件中,即使没有 qInstallMsgHandler():

也可以在 Windows/MSYS 上启用发布版本的 qDebug() 消息
CONFIG += console
CONFIG += warn_on