ctdb-logging: Separate out syslog and file logging backends
[kai/samba-autobuild/.git] / ctdb / include / ctdb_logging.h
1 /*
2    ctdb logging code
3
4    Copyright (C) Andrew Tridgell  2008
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 3 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, see <http://www.gnu.org/licenses/>.
18 */
19
20 #ifndef _CTDB_LOGGING_H_
21 #define _CTDB_LOGGING_H_
22
23 #include <stdbool.h>
24 #include <stdint.h>
25 #include <stdio.h>
26 #include <talloc.h>
27
28 extern const char *debug_extra;
29
30 enum debug_level {
31         DEBUG_ERR     =  0,
32         DEBUG_WARNING =  1,
33         DEBUG_NOTICE  =  2,
34         DEBUG_INFO    =  3,
35         DEBUG_DEBUG   =  4,
36 };
37
38 /* These are used in many places, so define them here to avoid churn */
39 #define DEBUG_ALERT DEBUG_ERR
40 #define DEBUG_CRIT  DEBUG_ERR
41
42 const char *get_debug_by_level(int32_t level);
43 bool parse_debug(const char *str, int32_t *level);
44 void print_debug_levels(FILE *stream);
45
46 int ctdb_log_setup_syslog(void);
47 int ctdb_log_setup_file(TALLOC_CTX *mem_ctx, const char *f);
48
49 #endif /* _CTDB_LOGGING_H_ */