python - python通过yaml文件配置日志记录
问题描述
我正在尝试使用 yaml 文件为我的应用程序配置日志记录logging.config.dictConfig
,但它并没有真正起作用,我认为logging
.
这是我的 yaml 文件:
version: 1
logging:
disable_existing_loggers: true
formatters:
multi-process:
class: logging.Formatter
style:
datefmt: "%I:%M:%S"
format: "{levelname:8s}; {process:5d}; {asctime:s}; {name:<15s} {lineno:4d}; {message:s}"
multi-thread:
class: logging.Formatter
style:
datefmt: "%I:%M:%S"
format: "{levelname:8s}; {threadName:5d}; {asctime:s}; {name:<15s} {lineno:4d}; {message:s}"
verbose:
class: logging.Formatter
style:
datefmt: "%I:%M:%S"
format: "{levelname:8s}; {process:5d}; {threadName:8s}; {asctime:s}; {name:<15s} {lineno:4d}; {message:s}"
handlers:
console:
level: DEBUG
class: logging.StreamHandler
formatter: verbose
stream: ext://sys.stdout
file_handler:
level: INFO
class: logging.handlers.WatchedFileHandler
formatter: verbose
filename: backtest.log
mode: a
encoding: utf-8
loggers:
example:
level: DEBUG
handlers:
- console
root:
handlers:
- console
level: DEBUG
这是我加载它的方式:
with open('logging.yaml', 'r') as stream:
yamld = yaml.load(stream)
logging.config.dictConfig(yamld)
logger = logging.getLogger("example")
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')
这是我到控制台的输出:
warn message
error message
critical message
就像我的配置根本没有加载
解决方案
明白了,logging
dict 不是日志记录模块要查找的内容。
我只需要简单地放置我的 yaml,没有logging:
推荐阅读
- flutter - 我可以在从谷歌云获得的 linux 服务器上使用颤振吗?
- apache-flink - 广播状态源会阻塞进程吗?
- android - Android Auto 上媒体项的圆形图标
- python - 将 adb screencap raw 转换为 png
- java - Java如何禁用特定的编译优化算法(例如GVN)
- ios - 自定义键盘 Swift 中的字符预览无法正确显示
- python - 替换超过 1 个具有相同含义的单词而不用 1 加 1
- python-3.x - 在 Python 中,如何将 astype(str) 应用于整个数据帧
- javascript - JQuery Angular 表单验证
- javascript - 带有详细信息+摘要的剧透标签