How to enable and disable qDebug() messages

gfernandes picture gfernandes · Feb 16, 2015 · Viewed 26.9k times · Source

I disable the qDebug() messages by writing

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

in the .pro file. This works fine. I would like to know if there is any way to enable qDebug() messages using the source code. I would like to send it as an argument to the application. Therefore by default I will have the qDebug() messages disabled, but with an argument stating to switch on the qDebug() messages I need the qDebug() enabled. Is it possible to do this?

Any help is appreciated

Answer

asj picture asj · Sep 22, 2016

You can control QDebug (and all messages) at runtime via a few options:

  1. QLoggingCategory Which allows you to use environment variables or config files. For example with Qt 5.6 you can do: QT_LOGGING_RULES="*.debug=false;driver.usb.debug=true" turns on qDebug for everything except USB debug. If you need a more complicated setup, or if you are using Qt 5.5 or earlier you can turn on and off individual debug messages via a qtlogging.ini file.
  2. QT_MESSAGE_PATTERN can also be used to control message output as well as doing formatting.