【发布时间】:2016-08-30 10:23:31
【问题描述】:
我有以下配置文件:
[loggers]
keys=MYLogger
[handlers]
keys=fileHandler,streamHandler,sysHandler
[formatters]
keys=simpleFormatter
[logger_MYLogger]
level=INFO
handlers=fileHandler
qualname=MYLogger
propagate=0
[handler_fileHandler]
class=FileHandler
formatter=simpleFormatter
args=('mylog.log',)
[handler_streamHandler]
class=StreamHandler
formatter=simpleFormatter
args=(sys.stdout,)
[handler_sysHandler]
class=logging.handlers.SysLogHandler
formatter=simpleFormatter
args=('/dev/log',)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s : %(message)s
datefmt=%Y-%m-%d %H:%M:%S
我需要将其转换为 YAML 文件。我已经成功完成了,除了 sysHandler 的一部分:
version: 1
formatters:
simpleFormatter:
format: '%(asctime)s - %(name)s - %(levelname)s : %(message)s'
datefmt: '%Y-%m-%d %H:%M:%S'
handlers:
stream:
class: logging.StreamHandler
formatter: simpleFormatter
stream: ext://sys.stdout
file:
class: logging.FileHandler
formatter: simpleFormatter
filename: mylog.log
# sys:
# class: logging.handlers.SysLogHandler
# formatter: simpleFormatter
# stream: /dev/log
loggers:
MYLogger:
level: INFO
handlers: [stream, file]
如何为 sysHandler 提供 yaml 格式的参数?为什么可以简单地将 args 放在原始配置文件中,而在这里我必须指定流/文件名?
【问题讨论】:
标签: python logging yaml syslog