]> arthur.barton.de Git - netdata.git/blob - src/log.h
f5f84def4c3e6f78e5d01d83454402eab2f959d2
[netdata.git] / src / log.h
1 #ifndef NETDATA_LOG_H
2 #define NETDATA_LOG_H 1
3
4 #define D_WEB_BUFFER        0x0000000000000001
5 #define D_WEB_CLIENT        0x0000000000000002
6 #define D_LISTENER          0x0000000000000004
7 #define D_WEB_DATA          0x0000000000000008
8 #define D_OPTIONS           0x0000000000000010
9 #define D_PROCNETDEV_LOOP   0x0000000000000020
10 #define D_RRD_STATS         0x0000000000000040
11 #define D_WEB_CLIENT_ACCESS 0x0000000000000080
12 #define D_TC_LOOP           0x0000000000000100
13 #define D_DEFLATE           0x0000000000000200
14 #define D_CONFIG            0x0000000000000400
15 #define D_PLUGINSD          0x0000000000000800
16 #define D_CHILDS            0x0000000000001000
17 #define D_EXIT              0x0000000000002000
18 #define D_CHECKS            0x0000000000004000
19 #define D_NFACCT_LOOP       0x0000000000008000
20 #define D_PROCFILE          0x0000000000010000
21 #define D_RRD_CALLS         0x0000000000020000
22 #define D_DICTIONARY        0x0000000000040000
23 #define D_MEMORY            0x0000000000080000
24 #define D_CGROUP            0x0000000000100000
25 #define D_REGISTRY          0x0000000000200000
26 #define D_VARIABLES         0x0000000000400000
27 #define D_HEALTH            0x0000000000800000
28 #define D_CONNECT_TO        0x0000000001000000
29 #define D_RRDHOST           0x0000000002000000
30 #define D_LOCKS             0x0000000004000000
31 #define D_BACKEND           0x0000000008000000
32 #define D_SYSTEM            0x8000000000000000
33
34 //#define DEBUG (D_WEB_CLIENT_ACCESS|D_LISTENER|D_RRD_STATS)
35 //#define DEBUG 0xffffffff
36 #define DEBUG (0)
37
38 extern uint64_t debug_flags;
39
40 extern const char *program_name;
41
42 extern int stdaccess_fd;
43 extern FILE *stdaccess;
44
45 extern const char *stdaccess_filename;
46 extern const char *stderr_filename;
47 extern const char *stdout_filename;
48
49 extern int access_log_syslog;
50 extern int error_log_syslog;
51 extern int output_log_syslog;
52
53 extern time_t error_log_throttle_period, error_log_throttle_period_backup;
54 extern unsigned long error_log_errors_per_period;
55 extern int error_log_limit(int reset);
56
57 extern void open_all_log_files();
58 extern void reopen_all_log_files();
59
60 #define error_log_limit_reset() do { error_log_throttle_period = error_log_throttle_period_backup; error_log_limit(1); } while(0)
61 #define error_log_limit_unlimited() do { error_log_throttle_period = 0; } while(0)
62
63 #define debug(type, args...) do { if(unlikely(debug_flags & type)) debug_int(__FILE__, __FUNCTION__, __LINE__, ##args); } while(0)
64 #define info(args...)    info_int(__FILE__, __FUNCTION__, __LINE__, ##args)
65 #define infoerr(args...) error_int("INFO", __FILE__, __FUNCTION__, __LINE__, ##args)
66 #define error(args...)   error_int("ERROR", __FILE__, __FUNCTION__, __LINE__, ##args)
67 #define fatal(args...)   fatal_int(__FILE__, __FUNCTION__, __LINE__, ##args)
68
69 extern void log_date(FILE *out);
70 extern void debug_int( const char *file, const char *function, const unsigned long line, const char *fmt, ... ) PRINTFLIKE(4, 5);
71 extern void info_int( const char *file, const char *function, const unsigned long line, const char *fmt, ... ) PRINTFLIKE(4, 5);
72 extern void error_int( const char *prefix, const char *file, const char *function, const unsigned long line, const char *fmt, ... ) PRINTFLIKE(5, 6);
73 extern void fatal_int( const char *file, const char *function, const unsigned long line, const char *fmt, ... ) NORETURN PRINTFLIKE(4, 5);
74 extern void log_access( const char *fmt, ... ) PRINTFLIKE(1, 2);
75
76 #endif /* NETDATA_LOG_H */