Compila rnetserver e rnetclient.
[cascardo/rnetproxy.git] / log.c
1 /*
2 ** Copyright (C) 2006 Thadeu Lima de Souza Cascardo <cascardo@minaslivre.org>
3 **  
4 ** This program is free software; you can redistribute it and/or modify
5 ** it under the terms of the GNU General Public License as published by
6 ** the Free Software Foundation; either version 2 of the License, or
7 ** (at your option) any later version.
8 **  
9 ** This program is distributed in the hope that it will be useful,
10 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 ** GNU General Public License for more details.
13 **  
14 ** You should have received a copy of the GNU General Public License
15 ** along with this program; if not, write to the Free Software
16 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 **  
18 */
19
20 #include <glib.h>
21 #include <syslog.h>
22
23 static int map_level (GLogLevelFlags level)
24 {
25   if (level & G_LOG_LEVEL_ERROR)
26     return LOG_CRIT;
27   if (level & G_LOG_LEVEL_CRITICAL)
28     return LOG_ERR;
29   if (level & G_LOG_LEVEL_WARNING)
30     return LOG_WARNING;
31   if (level & G_LOG_LEVEL_MESSAGE)
32     return LOG_NOTICE;
33   if (level & G_LOG_LEVEL_INFO)
34     return LOG_INFO;
35   if (level & G_LOG_LEVEL_DEBUG)
36     return LOG_DEBUG;
37 }
38
39 static void log_func (const gchar* domain,
40                       GLogLevelFlags level,
41                       const gchar* message,
42                       gpointer data)
43 {
44   syslog (map_level (level), "%s", message);
45 }
46
47 void rnet_log_init ()
48 {
49   openlog ("rnetproxy", LOG_NDELAY | LOG_NOWAIT, LOG_DAEMON);
50   g_log_set_handler (NULL, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL
51                      | G_LOG_FLAG_RECURSION, log_func, NULL);
52 }