diff options
author | James Booth <boothj5@gmail.com> | 2012-08-26 00:54:18 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2012-08-26 00:54:18 +0100 |
commit | 2bbac1c811ba017512349ff8170aa877b853b2a4 (patch) | |
tree | 0551b7d3f68e9cb3130b92313166cfede226e8ec /src/log.c | |
parent | 0fe70ce7d381ceb2b38cbb5ac9a99cbad95dec91 (diff) | |
download | profani-tty-2bbac1c811ba017512349ff8170aa877b853b2a4.tar.gz |
Refactored log
Added shortcut functions for prof logging levels
Diffstat (limited to 'src/log.c')
-rw-r--r-- | src/log.c | 78 |
1 files changed, 58 insertions, 20 deletions
diff --git a/src/log.c b/src/log.c index b063f2b4..8b9fb5cf 100644 --- a/src/log.c +++ b/src/log.c @@ -28,38 +28,54 @@ #include "log.h" #include "common.h" +#define PROF "prof" + static FILE *logp; static GTimeZone *tz; static GDateTime *dt; -static log_level_t prof_log_level; +static log_level_t level_filter; void -log_msg(log_level_t level, const char * const area, const char * const msg, ...) +log_debug(const char * const msg, ...) { - if (level >= prof_log_level) { - dt = g_date_time_new_now(tz); + va_list arg; + va_start(arg, msg); + log_msg(PROF_LEVEL_DEBUG, PROF, msg, arg); + va_end(arg); +} - va_list arg; - va_start(arg, msg); - GString *msg_formatted = g_string_new(NULL); - g_string_vprintf(msg_formatted, msg, arg); - va_end(arg); +void +log_info(const char * const msg, ...) +{ + va_list arg; + va_start(arg, msg); + log_msg(PROF_LEVEL_INFO, PROF, msg, arg); + va_end(arg); +} - gchar *date_fmt = g_date_time_format(dt, "%d/%m/%Y %H:%M:%S"); - fprintf(logp, "%s: %s: %s\n", date_fmt, area, msg_formatted->str); - g_date_time_unref(dt); - g_string_free(msg_formatted, TRUE); - - fflush(logp); +void +log_warning(const char * const msg, ...) +{ + va_list arg; + va_start(arg, msg); + log_msg(PROF_LEVEL_WARN, PROF, msg, arg); + va_end(arg); +} - } +void +log_error(const char * const msg, ...) +{ + va_list arg; + va_start(arg, msg); + log_msg(PROF_LEVEL_ERROR, PROF, msg, arg); + va_end(arg); } void -log_init(log_level_t log_level) +log_init(log_level_t filter) { - prof_log_level = log_level; + level_filter = filter; tz = g_time_zone_new_local(); GString *log_file = g_string_new(getenv("HOME")); g_string_append(log_file, "/.profanity/log"); @@ -70,9 +86,9 @@ log_init(log_level_t log_level) } log_level_t -log_get_level(void) +log_get_filter(void) { - return prof_log_level; + return level_filter; } void @@ -81,3 +97,25 @@ log_close(void) g_time_zone_unref(tz); fclose(logp); } + +void +log_msg(log_level_t level, const char * const area, const char * const msg, ...) +{ + if (level >= level_filter) { + dt = g_date_time_new_now(tz); + + va_list arg; + va_start(arg, msg); + GString *msg_formatted = g_string_new(NULL); + g_string_vprintf(msg_formatted, msg, arg); + va_end(arg); + + gchar *date_fmt = g_date_time_format(dt, "%d/%m/%Y %H:%M:%S"); + fprintf(logp, "%s: %s: %s\n", date_fmt, area, msg_formatted->str); + g_date_time_unref(dt); + g_string_free(msg_formatted, TRUE); + + fflush(logp); + } +} + |