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

时间:2015-02-16 11:36:48

标签: qt qdebug

我通过编写

来禁用qDebug()消息
CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT
<。>在.pro文件中。这很好用。我想知道是否有任何方法可以使用源代码启用qDebug()消息。我想将它作为参数发送给应用程序。因此,默认情况下,我将禁用qDebug()消息,但是如果参数声明要打开qDebug()消息,则需要启用qDebug()。有可能这样做吗?

感谢任何帮助

3 个答案:

答案 0 :(得分:9)

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

  1. QLoggingCategory允许您使用环境变量或配置文件。例如,使用Qt 5.6,您可以执行:<fieldNames hint="raw:AddFieldByFieldName">打开qDebug,除了USB调试之外的所有内容。如果您需要更复杂的设置,或者如果您使用的是Qt 5.5或更早版本,则可以通过qtlogging.ini文件打开和关闭各个调试消息。
  2. QT_MESSAGE_PATTERN也可用于控制消息输出以及执行formatting

答案 1 :(得分:8)

您可以添加自己的函数来处理qInstallMsgHandler

的Qt调试消息

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

答案 2 :(得分:0)

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

CONFIG += console
CONFIG += warn_on