diff -r 43084f103c2a -r 2780a73c71f3 src/log.c --- 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 #include +/** + * 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);