--- 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);