При использования CONFIG += console вывод может быть некорректным при использовании qDebug(). Для этого стоит свой метод реализации.
Пример реализации:
#include <QCoreApplication>
#include <QDebug>
// Функция для обработки сообщений
void myMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
Q_UNUSED(context);
switch (type) {
case QtDebugMsg:
fprintf(stderr, "Debug: %s\n", msg.toUtf8().constData());
break;
case QtInfoMsg:
fprintf(stderr, "Info: %s\n", msg.toUtf8().constData());
break;
case QtWarningMsg:
fprintf(stderr, "Warning: %s\n", msg.toUtf8().constData());
break;
case QtCriticalMsg:
fprintf(stderr, "Critical: %s\n", msg.toUtf8().constData());
break;
case QtFatalMsg:
fprintf(stderr, "Fatal: %s\n", msg.toUtf8().constData());
abort();
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Установка обработчика сообщений
qInstallMessageHandler(myMessageHandler);
// Пример вывода различных видов сообщений
qDebug() << "This is a debug message.";
qInfo() << "This is an info message.";
qWarning() << "This is a warning message.";
qCritical() << "This is a critical message.";
return a.exec();
}
В консоли мы увидим следующий вывод:

