#include <glib.h>
#include <gnet.h>
#include <stdio.h>
+#include "log.h"
void client_event (GConn* conn, GConnEvent* event, gpointer data)
{
gint port;
gnet_init ();
+ im_log_init ();
keyfile = g_key_file_new ();
--- /dev/null
+#include <glib.h>
+#include <syslog.h>
+
+static int map_level (GLogLevelFlags level)
+{
+ if (level & G_LOG_LEVEL_ERROR)
+ return LOG_CRIT;
+ if (level & G_LOG_LEVEL_CRITICAL)
+ return LOG_ERR;
+ if (level & G_LOG_LEVEL_WARNING)
+ return LOG_WARNING;
+ if (level & G_LOG_LEVEL_MESSAGE)
+ return LOG_NOTICE;
+ if (level & G_LOG_LEVEL_INFO)
+ return LOG_INFO;
+ if (level & G_LOG_LEVEL_DEBUG)
+ return LOG_DEBUG;
+}
+
+static void log_func (const gchar* domain,
+ GLogLevelFlags level,
+ const gchar* message,
+ gpointer data)
+{
+ syslog (map_level (level), "%s", message);
+}
+
+void im_log_init ()
+{
+ openlog ("improxy", LOG_NDELAY | LOG_NOWAIT, LOG_DAEMON);
+ g_log_set_handler (NULL, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL
+ | G_LOG_FLAG_RECURSION, log_func, NULL);
+}