XROAD
xroad_logger.h
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include <common/xroad_string.h>
9 #include <common/xroad_xml.h>
10 #include <stdio.h>
11 
12 #ifdef __cplusplus
13 extern "C"
14 {
15 #endif
16 
17 typedef struct xroad_logger_s xroad_logger_t;
18 
22 typedef enum
23 {
24  xroad_log_level_error = 0x1,
25  xroad_log_level_warn = 0x2,
26  xroad_log_level_notice = 0x4,
27  xroad_log_level_info = 0x8,
28  xroad_log_level_debug = 0x10,
29  xroad_log_level_trace = 0x20
31 
37 xroad_errno_t xroad_logger_create();
38 
44 xroad_errno_t xroad_logger_configure(xroad_xml_tag_t cfg);
45 
50 
55 xroad_errno_t xroad_logger_rotate();
56 
61 
66 
67 /*
68  * return logger
69  * @param[in] name - logger name. If no such logger found, return "main"
70  * @return logger - logger instance
71  */
72 xroad_logger_t* xroad_logger_get(xroad_str_t name);
73 
78 xroad_log_level_t xroad_logger_get_level(xroad_logger_t* logger);
79 
85 void xroad_logger_set_level(xroad_logger_t* logger, xroad_log_level_t llevel);
86 
87 //--------------------------------------------------------------------------------------------------------------------//
88 // error logging
89 //--------------------------------------------------------------------------------------------------------------------//
93 #define xroad_logx_error(logger, fmt, ...) xroad_logx(logger, xroad_log_level_error, xroad_str(fmt), ##__VA_ARGS__)
94 
98 #define xroad_vlogx_error(logger, fmt, ap) xroad_vlogx(logger, xroad_log_level_error, xroad_str(fmt), ap)
99 
103 #define xroad_log_error(fmt, ...) xroad_logx(NULL, xroad_log_level_error, xroad_str(fmt), ##__VA_ARGS__)
104 
108 #define xroad_vlog_error(fmt, ap) xroad_vlogx(NULL, xroad_log_level_error, xroad_str(fmt), ap)
109 
110 //--------------------------------------------------------------------------------------------------------------------//
111 // warning logging
112 //--------------------------------------------------------------------------------------------------------------------//
116 #define xroad_logx_warn(logger, fmt, ...) xroad_logx(logger, xroad_log_level_warn, xroad_str(fmt), ##__VA_ARGS__)
117 
121 #define xroad_vlogx_warn(logger, fmt, ap) xroad_vlogx(logger, xroad_log_level_warn, xroad_str(fmt), ap)
122 
126 #define xroad_log_warn(fmt, ...) xroad_logx(NULL, xroad_log_level_warn, xroad_str(fmt), ##__VA_ARGS__)
127 
131 #define xroad_vlog_warn(fmt, ap) xroad_vlogx(NULL, xroad_log_level_warn, xroad_str(fmt), ap)
132 
133 //--------------------------------------------------------------------------------------------------------------------//
134 // notice logging
135 //--------------------------------------------------------------------------------------------------------------------//
139 #define xroad_logx_notice(logger, fmt, ...) xroad_logx(logger, xroad_log_level_notice, xroad_str(fmt), ##__VA_ARGS__)
140 
144 #define xroad_vlogx_notice(logger, fmt, ap) xroad_vlogx(logger, xroad_log_level_notice, xroad_str(fmt), ap)
145 
149 #define xroad_log_notice(fmt, ...) xroad_logx(NULL, xroad_log_level_notice, xroad_str(fmt), ##__VA_ARGS__)
150 
154 #define xroad_vlog_notice(fmt, ap) xroad_vlogx(NULL, xroad_log_level_notice, xroad_str(fmt), ap)
155 
156 //--------------------------------------------------------------------------------------------------------------------//
157 // info logging
158 //--------------------------------------------------------------------------------------------------------------------//
162 #define xroad_logx_info(logger, fmt, ...) xroad_logx(logger, xroad_log_level_info, xroad_str(fmt), ##__VA_ARGS__)
163 
167 #define xroad_vlogx_info(logger, fmt, ap) xroad_vlogx(logger, xroad_log_level_info, xroad_str(fmt), ap)
168 
172 #define xroad_log_info(fmt, ...) xroad_logx(NULL, xroad_log_level_info, xroad_str(fmt), ##__VA_ARGS__)
173 
177 #define xroad_vlog_info(fmt, ap) xroad_vlogx(NULL, xroad_log_level_info, xroad_str(fmt), ap)
178 
179 
180 //--------------------------------------------------------------------------------------------------------------------//
181 // debug logging
182 //--------------------------------------------------------------------------------------------------------------------//
186 #define xroad_logx_debug(logger, fmt, ...) xroad_logx(logger, xroad_log_level_debug, xroad_str(fmt), ##__VA_ARGS__)
187 
191 #define xroad_vlogx_debug(logger, fmt, ap) xroad_vlogx(logger, xroad_log_level_debug, xroad_str(fmt), ap)
192 
196 #define xroad_log_debug(fmt, ...) xroad_logx(NULL, xroad_log_level_debug, xroad_str(fmt), ##__VA_ARGS__)
197 
201 #define xroad_vlog_debug(fmt, ap) xroad_vlogx(NULL, xroad_log_level_debug, xroad_str(fmt), ap)
202 
203 
204 //--------------------------------------------------------------------------------------------------------------------//
205 // trace logging
206 //--------------------------------------------------------------------------------------------------------------------//
210 #define xroad_logx_trace(logger, fmt, ...) xroad_logx(logger, xroad_log_level_trace, xroad_str(fmt), ##__VA_ARGS__)
211 
215 #define xroad_vlogx_trace(logger, fmt, ap) xroad_vlogx(logger, xroad_log_level_trace, xroad_str(fmt), ap)
216 
220 #define xroad_log_trace(fmt, ...) xroad_logx(NULL, xroad_log_level_trace, xroad_str(fmt), ##__VA_ARGS__)
221 
225 #define xroad_vlog_trace(fmt, ap) xroad_vlogx(NULL, xroad_log_level_trace, xroad_str(fmt), ap)
226 
234  xroad_logger_t* logger,
235  xroad_log_level_t llevel,
236  xroad_str_t fmt,
237  ...);
238 
247  xroad_logger_t* logger,
248  xroad_log_level_t llevel,
249  xroad_str_t fmt,
250  va_list ap);
251 
255 #define xroad_log(llevel, fmt, ...) xroad_logx(NULL, llevel, xroad_str(fmt), ##__VA_ARGS__)
256 
260 #define xroad_vlog(llevel, fmt, ap) xroad_vlogx(NULL, llevel, xroad_str(fmt), ap)
261 
262 
263 #ifdef __cplusplus
264 }
265 #endif
Definition: xroad_string.h:29
xroad_log_level_t xroad_logger_get_level(xroad_logger_t *logger)
void xroad_logger_disable_alarm()
xroad_errno_t xroad_logger_configure(xroad_xml_tag_t cfg)
void xroad_vlogx(xroad_logger_t *logger, xroad_log_level_t llevel, xroad_str_t fmt, va_list ap)
void xroad_logger_destroy()
xroad_errno_t xroad_logger_rotate()
void xroad_logger_set_level(xroad_logger_t *logger, xroad_log_level_t llevel)
void xroad_logx(xroad_logger_t *logger, xroad_log_level_t llevel, xroad_str_t fmt,...)
xroad_errno_t xroad_logger_create()
xroad_log_level_t
Definition: xroad_logger.h:23
void xroad_logger_enable_alarm()