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

gfe*_*des 15 qt qdebug

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

CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT
Run Code Online (Sandbox Code Playgroud)

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

任何帮助表示赞赏

Dan*_*urn 9

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

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


小智 9

您可以通过以下几个选项在运行时控制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还可用于控制消息输出以及进行格式化.