diff options
author | Christian Dywan <christian.dywan@canonical.com> | 2016-03-21 20:19:52 +0100 |
---|---|---|
committer | Christian Dywan <christian.dywan@canonical.com> | 2016-03-21 20:19:52 +0100 |
commit | 3ade4ea18a1486db796a4a97e561577111e6c745 (patch) | |
tree | 635d87592fd28867f440a8ecab8833570fa1977f | |
parent | 28a65ea0215012639121c3911d459ca47b2e0185 (diff) | |
download | midori-3ade4ea18a1486db796a4a97e561577111e6c745.tar.gz |
Resurrect -l/ --log-file switch
-rw-r--r-- | midori/main.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/midori/main.c b/midori/main.c index 00bc3b4b..71acff57 100644 --- a/midori/main.c +++ b/midori/main.c @@ -54,6 +54,48 @@ snapshot_load_finished_cb (GtkWidget* web_view, } #endif +static void +midori_log_to_file (const gchar* log_domain, + GLogLevelFlags log_level, + const gchar* message, + gpointer user_data) +{ + FILE* logfile = fopen ((const char*)user_data, "a"); + gchar* level_name = ""; + time_t timestamp = time (NULL); + + switch (log_level) + { + /* skip irrelevant flags */ + case G_LOG_LEVEL_MASK: + case G_LOG_FLAG_FATAL: + case G_LOG_FLAG_RECURSION: + + case G_LOG_LEVEL_ERROR: + level_name = "ERROR"; + break; + case G_LOG_LEVEL_CRITICAL: + level_name = "CRITICAL"; + break; + case G_LOG_LEVEL_WARNING: + level_name = "WARNING"; + break; + case G_LOG_LEVEL_MESSAGE: + level_name = "MESSAGE"; + break; + case G_LOG_LEVEL_INFO: + level_name = "INFO"; + break; + case G_LOG_LEVEL_DEBUG: + level_name = "DEBUG"; + break; + } + + fprintf (logfile, "%s%s-%s **: %s\n", asctime (localtime (×tamp)), + log_domain ? log_domain : "Midori", level_name, message); + fclose (logfile); +} + int main (int argc, char** argv) @@ -67,6 +109,7 @@ main (int argc, gboolean debug = FALSE; gboolean run; gchar* snapshot; + gchar* logfile; gchar** execute; gboolean help_execute; gboolean version; @@ -110,6 +153,8 @@ main (int argc, /* i18n: CLI: Close tabs, clear private data, open starting page */ N_("Reset Midori after SECONDS seconds of inactivity"), N_("SECONDS") }, #endif + { "log-file", 'l', 0, G_OPTION_ARG_FILENAME, &logfile, + N_("Redirects console warnings to the specified FILENAME"), N_("FILENAME")}, { NULL } }; @@ -121,6 +166,7 @@ main (int argc, plain = FALSE; run = FALSE; snapshot = NULL; + logfile = NULL; execute = NULL; help_execute = FALSE; version = FALSE; @@ -287,6 +333,11 @@ main (int argc, return 0; } + if (logfile) + { + g_log_set_default_handler (midori_log_to_file, (gpointer)logfile); + } + if (plain) { GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL); |