75 lines
1.6 KiB
C
75 lines
1.6 KiB
C
|
/*
|
||
|
* Copyright (c) 2012, Marius Barbu <msb@avengis.com>
|
||
|
* Copyright (c) 2013, Paul Irofti <paul@irofti.net>
|
||
|
*/
|
||
|
#ifndef LOGGING_H__
|
||
|
#define LOGGING_H__
|
||
|
|
||
|
enum LogLevel {
|
||
|
LOG_LEVEL_INFO,
|
||
|
LOG_LEVEL_DEBUG,
|
||
|
LOG_LEVEL_WARN,
|
||
|
LOG_LEVEL_ERROR,
|
||
|
LOG_LEVEL_DISABLE,
|
||
|
};
|
||
|
|
||
|
enum LogLevel log_level(char *id);
|
||
|
void log_message_raw(enum LogLevel l, char *id, char *fmt, ...);
|
||
|
void log_message(enum LogLevel l, char *where, int line, char *id,
|
||
|
char *fmt, ...);
|
||
|
|
||
|
#define log_info(id, ...) \
|
||
|
do { \
|
||
|
int enabled = log_level(id) <= LOG_LEVEL_INFO; \
|
||
|
if (enabled) { \
|
||
|
log_message(LOG_LEVEL_INFO, __FILE__, __LINE__, \
|
||
|
id, __VA_ARGS__); \
|
||
|
} \
|
||
|
} while (0)
|
||
|
|
||
|
#define log_info_raw(id, ...) \
|
||
|
do { \
|
||
|
int enabled = log_level(id) <= LOG_LEVEL_INFO; \
|
||
|
if (enabled) { \
|
||
|
log_message_raw(LOG_LEVEL_INFO, \
|
||
|
id, __VA_ARGS__); \
|
||
|
} \
|
||
|
} while (0)
|
||
|
|
||
|
#define log_debug(id, ...) \
|
||
|
do { \
|
||
|
int enabled = log_level(id) <= LOG_LEVEL_DEBUG; \
|
||
|
if (enabled) { \
|
||
|
log_message(LOG_LEVEL_DEBUG, __FILE__, __LINE__, \
|
||
|
id, __VA_ARGS__); \
|
||
|
} \
|
||
|
} while (0)
|
||
|
|
||
|
#define log_debug_raw(id, ...) \
|
||
|
do { \
|
||
|
int enabled = log_level(id) <= LOG_LEVEL_DEBUG; \
|
||
|
if (enabled) { \
|
||
|
log_message_raw(LOG_LEVEL_DEBUG, \
|
||
|
id, __VA_ARGS__); \
|
||
|
} \
|
||
|
} while (0)
|
||
|
|
||
|
|
||
|
#define log_warn(id, ...) \
|
||
|
log_message(LOG_LEVEL_WARN, __FILE__, __LINE__, \
|
||
|
id, __VA_ARGS__)
|
||
|
|
||
|
#define log_warn_raw(id, ...) \
|
||
|
log_message_raw(LOG_LEVEL_WARN, \
|
||
|
id, __VA_ARGS__)
|
||
|
|
||
|
#define log_error(id, ...) \
|
||
|
log_message(LOG_LEVEL_ERROR, __FILE__, __LINE__, \
|
||
|
id, __VA_ARGS__)
|
||
|
|
||
|
#define log_error_raw(id, ...) \
|
||
|
log_message(LOG_LEVEL_ERROR, \
|
||
|
id, __VA_ARGS__)
|
||
|
|
||
|
#endif /* LOGGING_H__ */
|