diff options
author | Mark Spencer <markster@digium.com> | 2004-10-24 06:12:21 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2004-10-24 06:12:21 +0000 |
commit | e14ae8b10b78d4a172609211cd71fb210c9ce632 (patch) | |
tree | 6e1ce84ef5d121df8e1d991f59cf6e7dc8fd6a5f /logger.c | |
parent | 16e8f4ca350e4be98c2df22ab29c2d20a6554251 (diff) |
Don't execute log functions for log levels we don't track
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4078 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'logger.c')
-rwxr-xr-x | logger.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -52,6 +52,7 @@ static char dateformat[256] = "%b %e %T"; /* Original Asterisk Format */ AST_MUTEX_DEFINE_STATIC(msglist_lock); AST_MUTEX_DEFINE_STATIC(loglock); static int pending_logger_reload = 0; +static int global_logmask = 0; static struct msglist { char *msg; @@ -211,6 +212,7 @@ static void init_logger_chain(void) logchannels = NULL; ast_mutex_unlock(&loglock); + global_logmask = 0; /* close syslog */ closelog(); @@ -241,6 +243,7 @@ static void init_logger_chain(void) if (chan) { chan->next = logchannels; logchannels = chan; + global_logmask |= chan->logmask; } var = var->next; } @@ -507,6 +510,9 @@ void ast_log(int level, const char *file, int line, const char *function, const if (!option_verbose && !option_debug && (level == __LOG_DEBUG)) { return; } + /* Ignore anything that never gets logged anywhere */ + if (!(global_logmask & (1 << level))) + return; /* begin critical section */ ast_mutex_lock(&loglock); |