При использования 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(); }
В консоли мы увидим следующий вывод: