如何启用和禁用 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(和所有消息):
- QLoggingCategory 这允许您使用环境变量或配置文件。例如,对于 Qt 5.6,您可以执行以下操作:
QT_LOGGING_RULES="*.debug=false;driver.usb.debug=true"
为除 USB 调试之外的所有内容打开 qDebug。如果您需要更复杂的设置,或者如果您使用的是 Qt 5.5 或更早版本,您可以通过 qtlogging.ini 文件打开和关闭单独的调试消息。
- 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
我通过编写
来禁用 qDebug() 消息CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT
在 .pro 文件中。这很好用。我想知道是否有任何方法可以使用源代码启用 qDebug() 消息。我想将它作为参数发送给应用程序。因此,默认情况下我将禁用 qDebug() 消息,但有一个参数说明要打开 qDebug() 消息我需要启用 qDebug() 。可以这样做吗?
感谢任何帮助
您可以使用 qInstallMsgHandler
添加自己的函数来处理 Qt 调试消息这将允许您控制是否打印消息。
您可以通过几个选项在运行时控制 QDebug(和所有消息):
- QLoggingCategory 这允许您使用环境变量或配置文件。例如,对于 Qt 5.6,您可以执行以下操作:
QT_LOGGING_RULES="*.debug=false;driver.usb.debug=true"
为除 USB 调试之外的所有内容打开 qDebug。如果您需要更复杂的设置,或者如果您使用的是 Qt 5.5 或更早版本,您可以通过 qtlogging.ini 文件打开和关闭单独的调试消息。 - 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