]> sigrok.org Git - pulseview.git/blobdiff - pv/logging.cpp
Fix #1035 by checking for exceptions when accessing config
[pulseview.git] / pv / logging.cpp
index 83577af200cee7afff6b0cb384a485d63883256a..b747ab5452c5f4ee7b2aef633a65fc1e02986f47 100644 (file)
@@ -20,6 +20,8 @@
 #include "logging.hpp"
 #include "globalsettings.hpp"
 
+#include <iostream>
+
 #ifdef ENABLE_DECODE
 #include <libsigrokdecode/libsigrokdecode.h> /* First, so we avoid a _POSIX_C_SOURCE warning. */
 #endif
@@ -28,6 +30,8 @@
 
 #include <QApplication>
 
+using std::cout;
+using std::endl;
 using std::lock_guard;
 
 namespace pv {
@@ -48,13 +52,15 @@ static void *prev_srd_log_cb_data;
 Logging::~Logging()
 {
        qInstallMessageHandler(nullptr);
-       sr_log_callback_set(prev_sr_log_cb, prev_sr_log_cb_data);
-       prev_sr_log_cb = NULL;
-       prev_sr_log_cb_data = NULL;
+       if (prev_sr_log_cb)
+               sr_log_callback_set(prev_sr_log_cb, prev_sr_log_cb_data);
+       prev_sr_log_cb = nullptr;
+       prev_sr_log_cb_data = nullptr;
 #ifdef ENABLE_DECODE
-       srd_log_callback_set(prev_srd_log_cb, prev_srd_log_cb_data);
-       prev_srd_log_cb = NULL;
-       prev_srd_log_cb_data = NULL;
+       if (prev_srd_log_cb)
+               srd_log_callback_set(prev_srd_log_cb, prev_srd_log_cb_data);
+       prev_srd_log_cb = nullptr;
+       prev_srd_log_cb_data = nullptr;
 #endif
 
        GlobalSettings::remove_change_handler(this);
@@ -120,10 +126,10 @@ void Logging::log(const QString &text, int source)
 
        switch (source) {
        case LogSource_pv:
-               s = QString("pv: ") + text;  // black is default color
+               s = QString("<font color=\"darkMagenta\">pv: %1</font>").arg(text);
                break;
        case LogSource_sr:
-               s = QString("<font color=\"blue\">sr: %1</font>").arg(text);
+               s = QString("<font color=\"darkGreen\">sr: %1</font>").arg(text);
                break;
        case LogSource_srd:
                s = QString("<font color=\"olive\">srd: %1</font>").arg(text);
@@ -148,6 +154,8 @@ void Logging::log_pv(QtMsgType type, const QMessageLogContext &context, const QS
        (void)context;
 
        logging.log(msg, LogSource_pv);
+
+       cout << msg.toUtf8().data() << endl;
 }
 
 int Logging::log_sr(void *cb_data, int loglevel, const char *format, va_list args)