Samstag, Januar 18, 2020

Python-logging.DEBUG-Ebene nicht-Protokollierung

Ich habe ein problem mit python logging lib. Mit dem folgenden code erstelle ich einen „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)

Und ich nenne es gerne:

logger.debug(SOME_STR_TO_BE_LOGGED)

ODER wie:

logger.Fehler(SOME_STR_TO_BE_LOGGED)

Und ich initialisiert die logger mit:

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)

Das problem ist, dass die error, und warn funktioniert sehr gut, aber weder info noch debug Methoden druckt alles an syslog.

Bin ich mit syslog-ng und ich dafür meinen filter, der es akzeptiert jeder Ebene aus debug zu emerg.

Was ist hier das problem? Irgendwelche Ideen?

InformationsquelleAutor 0xmtn | 2012-12-13

1 Kommentar

  1. 31

    Sie müssen auch die Ebene der logger, nicht nur die handler.

    Fügen Sie diese zu Ihrem logger_init:

    logger.setLevel(level)

Kostenlose Online-Tests