20

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

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

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

任何帮助表示赞赏

4

3 回答 3

14

您可以通过几个选项在运行时控制 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也可用于控制消息输出以及进行格式化
于 2016-09-21T22:26:21.470 回答
11

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

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

于 2015-02-16T11:50:28.190 回答
1

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

CONFIG += console
CONFIG += warn_on
于 2019-12-12T10:00:07.213 回答