diff -r ab25c0a231d0 -r feb2f1e115c6 src/server/daemon/log.c --- a/src/server/daemon/log.c Mon May 06 13:44:27 2013 +0200 +++ b/src/server/daemon/log.c Mon May 06 14:54:40 2013 +0200 @@ -59,7 +59,7 @@ static AccessLog *default_access_log; -char *log_date_month[] = { +static char *log_date_month[] = { "Jan", "Feb", "Mar", @@ -74,10 +74,24 @@ "Dec" }; -char *log_levels[] = { - "error", +static char *log_levels[] = { "warning", - "info" + "config", + "security", + "failure", + "catastrophe", + "info", + "verbose" +}; + +static int can_log[] = { + 1, // warning + 1, // config + 1, // security + 1, // failure + 1, // catastrophe + 1, // info + 0 // verbose }; int init_log_file(LogConfig *cfg) { @@ -93,11 +107,12 @@ } if(!strcmp(cfg->level, "ERROR")) { - log_level = LOG_LEVEL_ERROR; + can_log[LOG_WARN] = 0; + can_log[LOG_INFORM] = 0; } else if(!strcmp(cfg->level, "WARNING")) { - log_level = LOG_LEVEL_WARNING; + can_log[LOG_INFORM] = 0; } else if(!strcmp(cfg->level, "INFO")) { - log_level = LOG_LEVEL_INFO; + } if(cfg->log_stdout) { @@ -191,7 +206,10 @@ */ int log_ereport(int degree, const char *format, ...) { - if(degree > log_level) { + if(degree > 6) { + return 0; + } + if(degree > 0 && !can_log[degree]) { return 0; }