diff options
Diffstat (limited to 'src/logging')
-rw-r--r-- | src/logging/logging.c | 20 | ||||
-rw-r--r-- | src/logging/logging.h | 18 |
2 files changed, 26 insertions, 12 deletions
diff --git a/src/logging/logging.c b/src/logging/logging.c index 429f222..77c648c 100644 --- a/src/logging/logging.c +++ b/src/logging/logging.c @@ -1,11 +1,15 @@ #include <stdio.h> +#include <stdarg.h> #include "logging/logging.h" -const char * honey_log_level_str_(struct honey_log_info *info) +struct honey_log_info_t honey_log_info; + + +const char * honey_log_level_str() { - switch(info->log_level) { + switch(honey_log_info.log_level) { case DEBUG: return "DEBUG"; break; @@ -31,3 +35,15 @@ const char * honey_log_level_str_(struct honey_log_info *info) break; } } + + +void honey_debug(const char *fmt, ...) +{ + if (honey_log_info.log_level >= DEBUG) { + va_list args; + va_start(args, fmt); + fprintf(honey_log_info.debug_out, "[DEBUG] "); + vfprintf(honey_log_info.debug_out, fmt, args); + va_end(args); + } +} diff --git a/src/logging/logging.h b/src/logging/logging.h index 8f4d174..69ea88e 100644 --- a/src/logging/logging.h +++ b/src/logging/logging.h @@ -4,7 +4,7 @@ #include <stdio.h> -struct honey_log_info { +struct honey_log_info_t { enum { FATAL, ERROR, WARN, INFO, DEBUG } log_level; FILE *debug_out; FILE *info_out; @@ -13,16 +13,14 @@ struct honey_log_info { FILE *fatal_out; }; -const char * honey_log_level_str_(struct honey_log_info *info); +extern struct honey_log_info_t honey_log_info; -#define honey_log_(info, required_level, prefix, ...) do { \ - if (info.log_level >= required_level) { \ - fprintf(info.debug_out, prefix " " __VA_ARGS__); \ - } \ - } while(0) +const char * honey_log_level_str(); -#define honey_debug_(info, ...) \ - honey_log_(info, DEBUG, "[DEBUG]", __VA_ARGS__) - +void honey_debug(const char *fmt, ...); +void honey_info(const char *fmt, ...); +void honey_warn(const char *fmt, ...); +void honey_error(const char *fmt, ...); +void honey_fatal(const char *fmt, ...); #endif |