about summary refs log tree commit diff stats
path: root/src/log.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2012-08-26 00:54:18 +0100
committerJames Booth <boothj5@gmail.com>2012-08-26 00:54:18 +0100
commit2bbac1c811ba017512349ff8170aa877b853b2a4 (patch)
tree0551b7d3f68e9cb3130b92313166cfede226e8ec /src/log.c
parent0fe70ce7d381ceb2b38cbb5ac9a99cbad95dec91 (diff)
downloadprofani-tty-2bbac1c811ba017512349ff8170aa877b853b2a4.tar.gz
Refactored log
Added shortcut functions for prof logging levels
Diffstat (limited to 'src/log.c')
-rw-r--r--src/log.c78
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);
+    }
+}
+