【问题标题】:Python logging.DEBUG level doesn't loggingPython logging.DEBUG 级别不记录
【发布时间】:2012-12-13 10:25:15
【问题描述】:

我对 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)

问题在于errorwarn 工作得很好,但infodebug 方法都不会向系统日志打印任何内容。

我正在使用 syslog-ng 并且我设计了我的过滤器,即它将接受从 debugemerg 的所有级别。

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

【问题讨论】:

    标签: python logging syslog-ng


    【解决方案1】:

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

    将此添加到您的logger_init

    logger.setLevel(level)
    

    【讨论】:

    • 花了一些时间来解决这个问题.. 非常感谢您帮助解决它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多