Don't execute log functions for log levels we don't track
authorMark Spencer <markster@digium.com>
Sun, 24 Oct 2004 06:12:21 +0000 (06:12 +0000)
committerMark Spencer <markster@digium.com>
Sun, 24 Oct 2004 06:12:21 +0000 (06:12 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4078 65c4cc65-6c06-0410-ace0-fbb531ad65f3

logger.c

index 683c186..0fd0b2f 100755 (executable)
--- a/logger.c
+++ b/logger.c
@@ -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);