我已经阅读了文档,但是没有找到任何提及。 是否可以将参数传递到json配置文件中的自定义logging.handler类?
"handlers": {
"custom_handler": {
"class": "logging.CustomHandler",
"args": ['a', 'b'] # <------------------------
"level": "INFO",
"formatter": "custom"
}
},
处理程序类的定义是:
class CustomHandler(logging.Handler):
def __init__(self, argA, argB):
super().__init__()
self.a = argA
self.b = argB
def emit(self, record):
<Some code>
答案 0 :(得分:2)
处理程序部分中不是class
,level
,formatter
或filters
之一的每个键都作为关键字参数传递给处理程序构造函数。示例:
"handlers": {
"custom_handler": {
"class": "logging.CustomHandler",
"level": "INFO",
"formatter": "custom",
"argA": "spam",
"argB": "eggs"
}
}
这也意味着拥有一个带有构造函数arg的处理程序,其名称为class
,level
,formatter
或filters
是一个坏主意...