Mic*_*elR 2 python logging python-3.6
我已经阅读了文档,但没有发现任何提及。是否可以将参数传递给 json 配置文件中的自定义 logging.handler 类?
"handlers": {
"custom_handler": {
"class": "logging.CustomHandler",
"args": ['a', 'b'] # <------------------------
"level": "INFO",
"formatter": "custom"
}
},
Run Code Online (Sandbox Code Playgroud)
处理程序类定义在哪里:
class CustomHandler(logging.Handler):
def __init__(self, argA, argB):
super().__init__()
self.a = argA
self.b = argB
def emit(self, record):
<Some code>
Run Code Online (Sandbox Code Playgroud)
在处理器部分每一个关键,是不是一个class
,level
,formatter
或filters
传递给处理程序的构造函数作为关键字参数。例子:
"handlers": {
"custom_handler": {
"class": "logging.CustomHandler",
"level": "INFO",
"formatter": "custom",
"argA": "spam",
"argB": "eggs"
}
}
Run Code Online (Sandbox Code Playgroud)
这也意味着拥有一个构造函数参数名为class
, level
, formatter
or的处理程序filters
是一个坏主意......
来源:配置字典架构。
归档时间: |
|
查看次数: |
1480 次 |
最近记录: |