summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/main.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc
index f43d1bd4f4..441b2dc929 100644
--- a/gtk2_ardour/main.cc
+++ b/gtk2_ardour/main.cc
@@ -99,6 +99,28 @@ gui_jack_error ()
win.run ();
}
+#ifndef NDEBUG
+static void ardour_g_log (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data) {
+ switch (log_level) {
+ case G_LOG_FLAG_FATAL:
+ case G_LOG_LEVEL_CRITICAL:
+ fatal << "g_log: " << message << endmsg;
+ break;
+ case G_LOG_LEVEL_ERROR:
+ error << "g_log: " << message << endmsg;
+ break;
+ case G_LOG_LEVEL_WARNING:
+ warning << "g_log: " << message << endmsg;
+ break;
+ case G_LOG_LEVEL_MESSAGE:
+ case G_LOG_LEVEL_INFO:
+ default:
+ info << "g_log: " << message << endmsg;
+ break;
+ }
+}
+#endif
+
static gboolean
tell_about_backend_death (void* /* ignored */)
{
@@ -359,6 +381,12 @@ int main (int argc, char *argv[])
exit (1);
}
+#ifndef NDEBUG
+ g_log_set_handler (NULL,
+ GLogLevelFlags (G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL | G_LOG_LEVEL_CRITICAL | G_LOG_FLAG_RECURSION),
+ &ardour_g_log, NULL);
+#endif
+
ui->run (text_receiver);
Gtkmm2ext::Application::instance()->cleanup();
delete ui;