Pārlūkot izejas kodu

install a message handler

Signed-off-by: Le Tan <[email protected]>
Le Tan 9 gadi atpakaļ
vecāks
revīzija
013b6cecc2
1 mainītis faili ar 24 papildinājumiem un 0 dzēšanām
  1. 24 0
      src/main.cpp

+ 24 - 0
src/main.cpp

@@ -5,8 +5,32 @@
 #include "utils/vutils.h"
 #include "utils/vutils.h"
 #include "vsingleinstanceguard.h"
 #include "vsingleinstanceguard.h"
 
 
+void VLogger(QtMsgType type, const QMessageLogContext &context, const QString &msg)
+{
+    QByteArray localMsg = msg.toUtf8();
+    switch (type) {
+    case QtDebugMsg:
+        fprintf(stderr, "Debug:%s (%s:%u)\n", localMsg.constData(), context.file, context.line);
+        break;
+    case QtInfoMsg:
+        fprintf(stderr, "Info:%s (%s:%u)\n", localMsg.constData(), context.file, context.line);
+        break;
+    case QtWarningMsg:
+        fprintf(stderr, "Warning:%s (%s:%u)\n", localMsg.constData(), context.file, context.line);
+        break;
+    case QtCriticalMsg:
+        fprintf(stderr, "Critical:%s (%s:%u)\n", localMsg.constData(), context.file, context.line);
+        break;
+    case QtFatalMsg:
+        fprintf(stderr, "Fatal:%s (%s:%u)\n", localMsg.constData(), context.file, context.line);
+        abort();
+    }
+}
+
 int main(int argc, char *argv[])
 int main(int argc, char *argv[])
 {
 {
+    qInstallMessageHandler(VLogger);
+
     VSingleInstanceGuard guard;
     VSingleInstanceGuard guard;
     if (!guard.tryRun()) {
     if (!guard.tryRun()) {
         return 0;
         return 0;