42 lines
1.3 KiB
C
Raw Normal View History

// retoor <retoor@molodetz.nl>
#ifndef R_INTERFACES_LOGGER_H
#define R_INTERFACES_LOGGER_H
#include <stdbool.h>
typedef enum {
LOG_LEVEL_TRACE,
LOG_LEVEL_DEBUG,
LOG_LEVEL_INFO,
LOG_LEVEL_WARN,
LOG_LEVEL_ERROR,
LOG_LEVEL_FATAL
} log_level_t;
typedef struct logger_t *logger_handle;
logger_handle logger_create(log_level_t level);
void logger_destroy(logger_handle logger);
void logger_set_level(logger_handle logger, log_level_t level);
log_level_t logger_get_level(logger_handle logger);
void logger_log(logger_handle logger, log_level_t level,
const char *file, int line, const char *fmt, ...);
#define LOG_TRACE(logger, fmt, ...) \
logger_log(logger, LOG_LEVEL_TRACE, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define LOG_DEBUG(logger, fmt, ...) \
logger_log(logger, LOG_LEVEL_DEBUG, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define LOG_INFO(logger, fmt, ...) \
logger_log(logger, LOG_LEVEL_INFO, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define LOG_WARN(logger, fmt, ...) \
logger_log(logger, LOG_LEVEL_WARN, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define LOG_ERROR(logger, fmt, ...) \
logger_log(logger, LOG_LEVEL_ERROR, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define LOG_FATAL(logger, fmt, ...) \
logger_log(logger, LOG_LEVEL_FATAL, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#endif