首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python2.7:使用yaml进行日志配置

python2.7:使用yaml进行日志配置
EN

Stack Overflow用户
提问于 2012-05-09 23:38:11
回答 1查看 10.5K关注 0票数 18

我正在尝试从一个yaml文件配置一个记录器。在docs.python.org上,我找到了一个如何创建yaml文件的示例,我创建的文件如下所示:

代码语言:javascript
复制
formatters:
    simpleFormater:
        format: '%(asctime)s - %(levelname)s: %(message)s'
        datefmt: '%Y/%m/%d %H:%M:%S'

handlers:
    console:
        class: logging.StreamHandler
        formatter: simpleFormater
        level: DEBUG
        stream: ext://sys.stdout
    file:
        class : logging.FileHandler
        formatter: simpleFormater
        level: WARNING
        filename: songinfo.log

loggers:
    clogger:
        level: DEBUG
        handlers: [console]
    flogger:
        level: WARNING
        handlers: [file]

root:
    level: DEBUG
    handlers: [console, file]

但我找不到如何加载配置的示例。我看到了一些关于加载它的东西:

代码语言:javascript
复制
logging.config.dictConfig(yaml.load(open('logging.conf', 'r')))

但这会抛出一个"ValueError:字典没有指定版本“

所以我的问题是:如何在Python中将其加载到记录器中,以及如何使用阻塞器和浮选器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-09 23:44:47

通过读取python documentation,我们可以看到配置中有一个显示为version的必需键。

您的配置中需要一行内容:

代码语言:javascript
复制
version: 1

或者,您可以执行以下操作:

代码语言:javascript
复制
with open('logging.conf') as f:
    D = yaml.load(f)
    D.setdefault('version', 1)
    logging.config.dictConfig(D)
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10519392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档