src/log.c
changeset 73 2780a73c71f3
parent 22 c339c020fd33
child 104 fc196bb4bcc2
--- a/src/log.c	Thu Mar 26 21:46:10 2009 +0200
+++ b/src/log.c	Thu Mar 26 22:03:20 2009 +0200
@@ -4,6 +4,11 @@
 #include <stdio.h>
 #include <stdarg.h>
 
+/**
+ * The global log level
+ */
+static enum log_level _log_level = LOG_LEVEL_DEFAULT;
+
 #define _LOG_LEVEL_NAME(ll) case LOG_ ## ll: return #ll;
 const char *log_level_name (enum log_level level)
 {
@@ -17,7 +22,7 @@
     }
 }
 
-/*
+/**
  * Output the "[TYPE] FUNC: " header
  */
 void _log_header (enum log_level level, const char *func)
@@ -28,6 +33,10 @@
 void log_msg (enum log_level level, const char *func, const char *format, ...)
 {
     va_list vargs;
+
+    // filter out?
+    if (level < _log_level)
+        return;
     
     _log_header(level, func);
     
@@ -40,10 +49,20 @@
     printf("\n");
 }
 
+void set_log_level (enum log_level level)
+{
+    // meep meep
+    _log_level = level;
+}
+
 void _log_err (enum log_level level, err_t err, const char *func, const char *format, ...)
 {
     va_list vargs;
 
+    // filter out?
+    if (level < _log_level)
+        return;
+ 
     // header
     _log_header(level, func);
     
@@ -60,6 +79,10 @@
 {
     va_list vargs;
 
+    // filter out?
+    if (level < _log_level)
+        return;
+ 
     // header
     _log_header(level, func);