diff --git a/data/org.gnome.evolution.mail.gschema.xml.in b/data/org.gnome.evolution.mail.gschema.xml.in index 99244c0c60..8f5d928e93 100644 --- a/data/org.gnome.evolution.mail.gschema.xml.in +++ b/data/org.gnome.evolution.mail.gschema.xml.in @@ -426,7 +426,7 @@ '' <_summary>Logfile to log filter actions - <_description>Logfile to log filter actions. + <_description>If not set, or being 'stdout', then the logging is done to stdout, instead to a file. false diff --git a/src/mail/e-mail-ui-session.c b/src/mail/e-mail-ui-session.c index 7771949a36..a3b5a7b941 100644 --- a/src/mail/e-mail-ui-session.c +++ b/src/mail/e-mail-ui-session.c @@ -251,15 +251,23 @@ main_get_filter_driver (CamelSession *session, driver = camel_filter_driver_new (session); camel_filter_driver_set_folder_func (driver, get_folder, session); - if (g_settings_get_boolean (settings, "filters-log-actions")) { - if (priv->filter_logfile == NULL) { + if (g_settings_get_boolean (settings, "filters-log-actions") || + camel_debug ("filters")) { + if (!priv->filter_logfile && + g_settings_get_boolean (settings, "filters-log-actions")) { gchar *filename; filename = g_settings_get_string (settings, "filters-log-file"); if (filename) { - priv->filter_logfile = g_fopen (filename, "a+"); + if (!*filename || g_strcmp0 (filename, "stdout") == 0) + priv->filter_logfile = stdout; + else + priv->filter_logfile = g_fopen (filename, "a+"); + g_free (filename); } + } else if (!priv->filter_logfile) { + priv->filter_logfile = stdout; } if (priv->filter_logfile)