]> arthur.barton.de Git - netdata.git/blob - src/log.h
cgroups are enabled/disabled using their new names (it was needed because docker...
[netdata.git] / src / log.h
1 #include <stdio.h>
2 #include <stdarg.h>
3
4 #ifndef NETDATA_LOG_H
5 #define NETDATA_LOG_H 1
6
7 #define D_WEB_BUFFER            0x00000001
8 #define D_WEB_CLIENT            0x00000002
9 #define D_LISTENER              0x00000004
10 #define D_WEB_DATA              0x00000008
11 #define D_OPTIONS               0x00000010
12 #define D_PROCNETDEV_LOOP   0x00000020
13 #define D_RRD_STATS             0x00000040
14 #define D_WEB_CLIENT_ACCESS     0x00000080
15 #define D_TC_LOOP           0x00000100
16 #define D_DEFLATE           0x00000200
17 #define D_CONFIG            0x00000400
18 #define D_PLUGINSD          0x00000800
19 #define D_CHILDS            0x00001000
20 #define D_EXIT              0x00002000
21 #define D_CHECKS            0x00004000
22 #define D_NFACCT_LOOP           0x00008000
23 #define D_PROCFILE                      0x00010000
24 #define D_RRD_CALLS                     0x00020000
25 #define D_DICTIONARY            0x00040000
26 #define D_MEMORY                        0x00080000
27 #define D_CGROUP            0x00100000
28
29 //#define DEBUG (D_WEB_CLIENT_ACCESS|D_LISTENER|D_RRD_STATS)
30 //#define DEBUG 0xffffffff
31 #define DEBUG (0)
32
33 extern unsigned long long debug_flags;
34
35 extern const char *program_name;
36
37 extern int silent;
38
39 extern int access_fd;
40 extern FILE *stdaccess;
41
42 extern int access_log_syslog;
43 extern int error_log_syslog;
44 extern int output_log_syslog;
45
46 extern time_t error_log_throttle_period;
47 extern unsigned long error_log_errors_per_period;
48 extern int error_log_limit(int reset);
49
50 #define error_log_limit_reset() do { error_log_limit(1); } while(0)
51
52 #define debug(type, args...) do { if(unlikely(!silent && (debug_flags & type))) debug_int(__FILE__, __FUNCTION__, __LINE__, ##args); } while(0)
53 #define info(args...)    info_int(__FILE__, __FUNCTION__, __LINE__, ##args)
54 #define infoerr(args...) error_int("INFO", __FILE__, __FUNCTION__, __LINE__, ##args)
55 #define error(args...)   error_int("ERROR", __FILE__, __FUNCTION__, __LINE__, ##args)
56 #define fatal(args...)   fatal_int(__FILE__, __FUNCTION__, __LINE__, ##args)
57
58 extern void log_date(FILE *out);
59 extern void debug_int( const char *file, const char *function, const unsigned long line, const char *fmt, ... );
60 extern void info_int( const char *file, const char *function, const unsigned long line, const char *fmt, ... );
61 extern void error_int( const char *prefix, const char *file, const char *function, const unsigned long line, const char *fmt, ... );
62 extern void fatal_int( const char *file, const char *function, const unsigned long line, const char *fmt, ... ) __attribute__ ((noreturn));
63 extern void log_access( const char *fmt, ... );
64
65 #endif /* NETDATA_LOG_H */