From fc8c1080dabc45a45a883b5881eda690ed5e0306 Mon Sep 17 00:00:00 2001 From: Felix Kauselmann Date: Sat, 25 Jul 2020 20:09:24 +0200 Subject: [PATCH] Add a message handler This ensures that Qt debug messages actually end up in our logfiles, even if we didn't use QsLog to create them. --- YACReader/main.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/YACReader/main.cpp b/YACReader/main.cpp index ab8621a7..90a79e18 100644 --- a/YACReader/main.cpp +++ b/YACReader/main.cpp @@ -53,8 +53,41 @@ private: }; #endif +void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) +{ + Q_UNUSED(context); + + QByteArray localMsg = msg.toLocal8Bit(); + switch (type) { + case QtInfoMsg: { + QLOG_INFO() << localMsg.constData(); + break; + } + case QtDebugMsg: { + QLOG_DEBUG() << localMsg.constData(); + break; + } + + case QtWarningMsg: { + QLOG_WARN() << localMsg.constData(); + break; + } + + case QtCriticalMsg: { + QLOG_ERROR() << localMsg.constData(); + break; + } + + case QtFatalMsg: { + QLOG_FATAL() << localMsg.constData(); + break; + } + } +} + int main(int argc, char *argv[]) { + qInstallMessageHandler(messageHandler); #if defined(_MSC_VER) && defined(_DEBUG) _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);