Вывод qDebug в консоль

Автор: | 21 декабря, 2023

При использования  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();
}

В консоли мы увидим следующий вывод: