34

我对 python 的logging库有问题。使用下面的代码,我创建了一个“记录器”:

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)

我称之为:

logger.debug(SOME_STR_TO_BE_LOGGED)

或喜欢:

logger.error(SOME_STR_TO_BE_LOGGED)

我初始化记录器:

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)

问题是error, 和warn工作得很好,但是也info没有debug方法打印任何东西到系统日志。

我正在使用 syslog-ng 并且我设计了我的过滤器,即它将接受从debug到 的每个级别emerg

这里有什么问题?有任何想法吗?

4

1 回答 1

40

您还必须设置记录器的级别,而不仅仅是处理程序。

将此添加到您的logger_init

logger.setLevel(level)
于 2012-12-13T10:37:05.100 回答