8
votes

I currently have a terribly annoying problem while developing programs using Qt and Qt Creator. Whenever I try using qDebug() with a QCoreApplication or QApplication instantiated before using qDebug(), there isn't any output, whether I run the program in Qt Creator or from a normal shell(I'm using Fedora Linux btw). For example, even the following simple code fails:

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qDebug() << "TestOutput!" << endl;
}

Does anybody know what to do about this problem? Thanks in advance, Marius

4
are you building in debug mode?Frank Osterfeld
Provide the whole code.Murat Şeker
I can't reproduce your problem with the code you provided. It even works with a release build.Carlton
And where you are looking for your output?demonplus
The output used to show up in the second console window opened by Qt Creator. I've looked in "Application Output" tab in Qt Creator too, but still nothing. Neither Debug nor Release mode produce the desired output(but some days ago, they used to, and I haven't changed anything regarding Qt since then). Even this small snipped does not work.marius_linux

4 Answers

9
votes

For better formatting, I add this new solution, marius still found it himself in this bugzilla.

Edit ~/.config/QtProject/qtlogging.ini and add:

[Rules]
*.debug=true
qt.qpa.input*.debug=false

The last line is to disable spammy debug logging for moved mouse messages.

5
votes

Docs around this can be found here: http://doc.qt.io/qt-5/qloggingcategory.html#details

It can be configured in many ways. Few useful examples:

by env variable(cmd):

$ export QT_LOGGING_RULES="*.debug=true" ./app

by env variable(export):

$ QT_LOGGING_RULES="*.debug=true"
$ ./app

or in code:

#include <QCoreApplication>
#include <QLoggingCategory>
int main(int argc, char *argv[])
{
  QCoreApplication a(argc, argv);
  QLoggingCategory::setFilterRules("*.debug=true");
  qDebug() << "Debugging;
  a.exit();
}
1
votes

OK, I found out what the problem was, it was indeed Fedora, but it's the new standard configuration. See here: https://forum.qt.io/topic/54820/

0
votes

This one help for me (In user bashrc file):

export QT_LOGGING_DEBUG=1