1 /*
2  *  ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd)
3  *
4  *  Copyright (c) 1997-2021 ircd-hybrid development team
5  *
6  *  This program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation; either version 2 of the License, or
9  *  (at your option) any later version.
10  *
11  *  This program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with this program; if not, write to the Free Software
18  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
19  *  USA
20  */
21 
22 /*! \file log.h
23  * \brief A header for the logger functions.
24  * \version $Id: log.h 9858 2021-01-01 04:43:42Z michael $
25  */
26 
27 #ifndef INCLUDED_log_h
28 #define INCLUDED_log_h
29 
30 enum { LOG_BUFSIZE = 1024 };
31 
32 enum log_type
33 {
34   LOG_TYPE_IRCD,
35   LOG_TYPE_KILL,
36   LOG_TYPE_KLINE,
37   LOG_TYPE_DLINE,
38   LOG_TYPE_XLINE,
39   LOG_TYPE_RESV,
40   LOG_TYPE_OPER,
41   LOG_TYPE_USER,
42   LOG_TYPE_DEBUG,
43   LOG_TYPE_LAST
44 };
45 
46 struct LogFile
47 {
48   char *path;
49   size_t size;
50   FILE *file;
51 };
52 
53 extern void log_set_file(enum log_type, size_t, const char *);
54 extern void log_free(struct LogFile *);
55 extern void log_reopen(struct LogFile *);
56 extern void log_iterate(void (*func)(struct LogFile *));
57 extern void ilog(enum log_type, const char *, ...) AFP(2,3);
58 #endif  /* INCLUDED_log_h */
59