24#ifndef CLIBS_LOGGING_H
25#define CLIBS_LOGGING_H
38#define CLIBS_LOG_LEVEL_NONE 0
39#define CLIBS_LOG_LEVEL_FATAL 1
40#define CLIBS_LOG_LEVEL_ERROR 2
41#define CLIBS_LOG_LEVEL_WARN 3
42#define CLIBS_LOG_LEVEL_INFO 4
43#define CLIBS_LOG_LEVEL_DEBUG 5
56#ifndef CLIBS_LOG_LEVEL
57#define CLIBS_LOG_LEVEL CLIBS_LOG_LEVEL_NONE
90#if CLIBS_LOG_LEVEL >= CLIBS_LOG_LEVEL_DEBUG
91#define CLIBS_LOG_DEBUG(fmt, ...) \
93 fprintf(clibs_get_err(), "[DEBUG] (%s:%d) " fmt "\n", \
94 __FILE__, __LINE__, ##__VA_ARGS__); \
97#define CLIBS_LOG_DEBUG(...) ((void)0)
104#if CLIBS_LOG_LEVEL >= CLIBS_LOG_LEVEL_INFO
105#define CLIBS_LOG_INFO(fmt, ...) \
107 fprintf(clibs_get_err(), "[INFO] " fmt "\n", ##__VA_ARGS__); \
110#define CLIBS_LOG_INFO(...) ((void)0)
117#if CLIBS_LOG_LEVEL >= CLIBS_LOG_LEVEL_WARN
118#define CLIBS_LOG_WARN(fmt, ...) \
120 fprintf(clibs_get_err(), "[WARN] " fmt "\n", ##__VA_ARGS__); \
123#define CLIBS_LOG_WARN(...) ((void)0)
132#if CLIBS_LOG_LEVEL >= CLIBS_LOG_LEVEL_ERROR
133#define CLIBS_LOG_ERROR(fmt, ...) \
135 fprintf(clibs_get_err(), "[ERROR] " fmt "\n", ##__VA_ARGS__); \
138#define CLIBS_LOG_ERROR(...) ((void)0)
147#if CLIBS_LOG_LEVEL >= CLIBS_LOG_LEVEL_FATAL
148#define CLIBS_LOG_FATAL(fmt, ...) \
150 fprintf(clibs_get_err(), "[FATAL] (%s:%d) " fmt "\n", \
151 __FILE__, __LINE__, ##__VA_ARGS__); \
154#define CLIBS_LOG_FATAL(...) ((void)0)
FILE * clibs_get_out(void)
Returns the current thread-local output stream.
Definition clibs_logging.c:31
void clibs_set_output(FILE *out, FILE *err)
Sets thread-local output streams.
Definition clibs_logging.c:26
FILE * clibs_get_err(void)
Returns the current thread-local error stream.
Definition clibs_logging.c:35