diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/main.cc | 28 |
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; |