Python logging.DEBUG level doesn't logging
Asked Answered
S

1

34

I have a problem with python's logging lib. With the code below I create a "logger":

logger = logging.getLogger()
def logger_init(level):
    try:
        syslog = SysLogHandler(address=LOG_DESTINATION)
    except Exception, ex:
        return
    formatter = logging.Formatter('%(module)s[%(process)d]: %(message)s')
    syslog.setFormatter(formatter)
    syslog.setLevel(level)
    logger.addHandler(syslog)

And I call it like:

logger.debug(SOME_STR_TO_BE_LOGGED)

OR like:

logger.error(SOME_STR_TO_BE_LOGGED)

And I initialize the logger with:

log_level = logging.ERROR
if options.DEBUG_LOG: ####  This comes from options parser and it is True.
    log_level = logging.DEBUG
logger_init(log_level)

The problem is that the error, and warn is working very well, but neither info nor debug methods prints anything to syslog.

I'm using syslog-ng and I designed my filter, that is it will accept every level from debug to emerg.

What is the problem here? Any ideas?

Selfsustaining answered 13/12, 2012 at 10:25 Comment(0)
C
40

You also have to set the level of the logger, not only the handler.

Add this to your logger_init:

logger.setLevel(level)
Chelseychelsie answered 13/12, 2012 at 10:37 Comment(1)
spent some time scratching my head about this.. thanks a lot for helping catch it.Surface

© 2022 - 2024 — McMap. All rights reserved.