30 #define CSNIP_LOG_PRIO_DEBUGV 0
37 #define CSNIP_LOG_PRIO_DEBUG 10
40 #define CSNIP_LOG_PRIO_INFO 20
43 #define CSNIP_LOG_PRIO_NOTICE 30
46 #define CSNIP_LOG_PRIO_WARN 40
49 #define CSNIP_LOG_PRIO_ERR 50
51 #ifndef CSNIP_LOG_PRIO_MIN
63 #define CSNIP_LOG_PRIO_MIN 0
96 void csnip_log__mesg_trailer(FILE* fp);
97 void csnip_log__perror_trailer(FILE* fp);
98 void csnip_log__print(
99 void (*print_trailer)(FILE*),
101 const char* src_file,
103 const char* src_func,
104 const char* component,
113 #ifndef csnip_log_Mesg
133 #define csnip_log_Mesg(prio, ...) \
134 csnip_log_MesgForComp(CSNIP_LOG_COMPONENT, prio, __VA_ARGS__)
137 #ifndef csnip_log_MesgForComp
153 #define csnip_log_MesgForComp(comp, prio, ...) \
155 if ((prio) >= CSNIP_LOG_PRIO_MIN) { \
157 csnip_log__mesg_trailer, \
159 __FILE__, __LINE__, __func__, \
160 (comp), __VA_ARGS__); \
165 #ifndef csnip_log_Perror
178 #define csnip_log_Perror(prio, ...) \
179 csnip_log_PerrorForComp(CSNIP_LOG_COMPONENT, prio, __VA_ARGS__)
198 #define csnip_log_PerrorForComp(comp, prio, ...) \
200 if ((prio) >= CSNIP_LOG_PRIO_MIN) { \
202 csnip_log__perror_trailer, \
204 __FILE__, __LINE__, __func__, \
205 (comp), __VA_ARGS__); \
215 #if defined(CSNIP_SHORT_NAMES) && !defined(CSNIP_LOG_HAVE_SHORT_NAMES)
216 #define LOG_PRIO_DEBUGV CSNIP_LOG_PRIO_DEBUGV
217 #define LOG_PRIO_DEBUG CSNIP_LOG_PRIO_DEBUG
218 #define LOG_PRIO_INFO CSNIP_LOG_PRIO_INFO
219 #define LOG_PRIO_NOTICE CSNIP_LOG_PRIO_NOTICE
220 #define LOG_PRIO_WARN CSNIP_LOG_PRIO_WARN
221 #define LOG_PRIO_ERR CSNIP_LOG_PRIO_ERR
222 #define log_config0 csnip_log_config0
223 #define log_Mesg csnip_log_Mesg
224 #define log_MesgForComp csnip_log_MesgForComp
225 #define log_Perror csnip_log_Perror
226 #define log_PerrorForComp csnip_log_PerrorForComp
227 #define CSNIP_LOG_HAVE_SHORT_NAMES
void csnip_log_config0(const char *filters_expr, FILE *log_out)
Simple logger configuration.
Definition: log.c:181