How to enable and disable qDebug() messages
Asked Answered
B

3

23

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

Boyles answered 16/2, 2015 at 11:36 Comment(4)
You can look at qInstallMsgHandler documentation.Arratoon
@Arratoon that line in .pro file not stop console.log for meWireless
@mohammadalabid, why do you add it to .pro file? It should be added to your sorce code. Please see the answer on this question and Qt docs: doc.qt.io/qt-5/qtglobal.html#qInstallMessageHandler .Arratoon
i mean this line CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUTWireless
B
11

You can add your own function for handling Qt debug messages with qInstallMsgHandler

This will allow you to control whether to print the messages.

Baler answered 16/2, 2015 at 11:50 Comment(0)
B
17

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.
Bootlace answered 21/9, 2016 at 22:26 Comment(0)
B
11

You can add your own function for handling Qt debug messages with qInstallMsgHandler

This will allow you to control whether to print the messages.

Baler answered 16/2, 2015 at 11:50 Comment(0)
C
1

Adding this code to my qmake project file enabled qDebug() messages for release builds on Windows/MSYS, even without the qInstallMsgHandler():

CONFIG += console
CONFIG += warn_on
Compressed answered 12/12, 2019 at 10:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.