我正在尝试从一个yaml文件配置一个记录器。在docs.python.org上,我找到了一个如何创建yaml文件的示例,我创建的文件如下所示:
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]
但我找不到如何加载配置的示例。我看到了一些关于加载它的东西:
logging.config.dictConfig(yaml.load(open('logging.conf', 'r')))
但这会抛出一个"ValueError:字典没有指定版本“
所以我的问题是:如何在Python中将其加载到记录器中,以及如何使用阻塞器和浮选器。
发布于 2012-05-09 23:44:47
通过读取python documentation,我们可以看到配置中有一个显示为version
的必需键。
您的配置中需要一行内容:
version: 1
或者,您可以执行以下操作:
with open('logging.conf') as f:
D = yaml.load(f)
D.setdefault('version', 1)
logging.config.dictConfig(D)
https://stackoverflow.com/questions/10519392
复制相似问题