42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
|
|
// 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
|