1 /********************************************************************\
2   * BitlBee -- An IRC to other IM-networks gateway                     *
3   *                                                                    *
4   * Copyright 2002-2005 Wilmer van der Gaast and others                *
5   \********************************************************************/
6 
7 /* Logging services for the bee                               */
8 
9 /*
10   This program is free software; you can redistribute it and/or modify
11   it under the terms of the GNU General Public License as published by
12   the Free Software Foundation; either version 2 of the License, or
13   (at your option) any later version.
14 
15   This program is distributed in the hope that it will be useful,
16   but WITHOUT ANY WARRANTY; without even the implied warranty of
17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18   GNU General Public License for more details.
19 
20   You should have received a copy of the GNU General Public License with
21   the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL;
22   if not, write to the Free Software Foundation, Inc., 51 Franklin St.,
23   Fifth Floor, Boston, MA  02110-1301  USA
24 */
25 
26 #ifndef _LOG_H
27 #define _LOG_H
28 
29 typedef enum {
30 	LOGLVL_INFO,
31 	LOGLVL_WARNING,
32 	LOGLVL_ERROR,
33 #ifdef DEBUG
34 	LOGLVL_DEBUG,
35 #endif
36 } loglvl_t;
37 
38 typedef enum {
39 	LOGOUTPUT_NULL,
40 	LOGOUTPUT_IRC,
41 	LOGOUTPUT_SYSLOG,
42 	LOGOUTPUT_CONSOLE,
43 } logoutput_t;
44 
45 typedef struct log_t {
46 	void (*error)(int level, const char *logmessage);
47 	void (*warning)(int level, const char *logmessage);
48 	void (*informational)(int level, const char *logmessage);
49 #ifdef DEBUG
50 	void (*debug)(int level, const char *logmessage);
51 #endif
52 } log_t;
53 
54 void log_init(void);
55 void log_link(int level, int output);
56 void log_message(int level, const char *message, ...) G_GNUC_PRINTF(2, 3);
57 void log_error(const char *functionname);
58 
59 #endif
60