aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@gmail.com>2007-07-10 02:59:01 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2007-07-10 02:59:01 +0800
commita8a6226a74d81da8c8a6c6766c56a15993d2eb47 (patch)
tree41efc6588be5f450eff666bdefc73929a10d3a93 /libempathy
parentc1ea2e3b533fea657d90a3b6e263675526f192e5 (diff)
downloadgsoc2013-empathy-a8a6226a74d81da8c8a6c6766c56a15993d2eb47.tar
gsoc2013-empathy-a8a6226a74d81da8c8a6c6766c56a15993d2eb47.tar.gz
gsoc2013-empathy-a8a6226a74d81da8c8a6c6766c56a15993d2eb47.tar.bz2
gsoc2013-empathy-a8a6226a74d81da8c8a6c6766c56a15993d2eb47.tar.lz
gsoc2013-empathy-a8a6226a74d81da8c8a6c6766c56a15993d2eb47.tar.xz
gsoc2013-empathy-a8a6226a74d81da8c8a6c6766c56a15993d2eb47.tar.zst
gsoc2013-empathy-a8a6226a74d81da8c8a6c6766c56a15993d2eb47.zip
Add EMPATHY_LOGFILE env variable. Fixes bug #455240 (Guillaume Desmottes).
2007-07-09 Xavier Claessens <xclaesse@gmail.com> * src/empathy.c: * libempathy/empathy-debug.c: * libempathy/empathy-debug.h: Add EMPATHY_LOGFILE env variable. Fixes bug #455240 (Guillaume Desmottes). svn path=/trunk/; revision=179
Diffstat (limited to 'libempathy')
-rw-r--r--libempathy/empathy-debug.c37
-rw-r--r--libempathy/empathy-debug.h5
2 files changed, 41 insertions, 1 deletions
diff --git a/libempathy/empathy-debug.c b/libempathy/empathy-debug.c
index 2f5658499..c3e5d74b0 100644
--- a/libempathy/empathy-debug.c
+++ b/libempathy/empathy-debug.c
@@ -24,9 +24,15 @@
#include <stdarg.h>
#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
#include <glib.h>
#include <glib/gprintf.h>
+#include <glib/gstdio.h>
/* Set EMPATHY_DEBUG to a colon/comma/space separated list of domains, or "all"
* to get all debug output.
@@ -90,3 +96,34 @@ empathy_debug_impl (const gchar *domain, const gchar *msg, ...)
}
}
+void
+empathy_debug_set_log_file_from_env (void)
+{
+ const gchar *output_file;
+ gint out;
+
+ output_file = g_getenv ("EMPATHY_LOGFILE");
+ if (output_file == NULL) {
+ return;
+ }
+
+ out = g_open (output_file, O_WRONLY | O_CREAT, 0644);
+ if (out == -1) {
+ g_warning ("Can't open logfile '%s': %s", output_file,
+ g_strerror (errno));
+ return;
+ }
+
+ if (dup2 (out, STDOUT_FILENO) == -1) {
+ g_warning ("Error when duplicating stdout file descriptor: %s",
+ g_strerror (errno));
+ return;
+ }
+
+ if (dup2 (out, STDERR_FILENO) == -1) {
+ g_warning ("Error when duplicating stderr file descriptor: %s",
+ g_strerror (errno));
+ return;
+ }
+}
+
diff --git a/libempathy/empathy-debug.h b/libempathy/empathy-debug.h
index 19d2aa380..fca53f4bd 100644
--- a/libempathy/empathy-debug.h
+++ b/libempathy/empathy-debug.h
@@ -45,7 +45,10 @@ G_BEGIN_DECLS
# endif
#endif
-void empathy_debug_impl (const gchar *domain, const gchar *msg, ...);
+void empathy_debug_impl (const gchar *domain,
+ const gchar *msg,
+ ...);
+void empathy_debug_set_log_file_from_env (void);
G_END_DECLS