代码之家  ›  专栏  ›  技术社区  ›  MichaelR

Python日志:我可以在json配置文件中将参数传递给自定义处理程序吗

  •  1
  • MichaelR  · 技术社区  · 7 年前

    是否可以将参数传递给自定义logging.handler 在json配置文件中初始化?

    "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>
    
    1 回复  |  直到 7 年前
        1
  •  5
  •   hoefling    7 年前

    处理程序部分中不是 class level , formatter filters 作为关键字参数传递给处理程序构造函数。例子:

    "handlers": {
        "custom_handler": {
            "class": "logging.CustomHandler",
            "level": "INFO",
            "formatter": "custom",
            "argA": "spam",
            "argB": "eggs"
        }
    }
    

    , 水平 , 格式化程序

    资料来源: Configuration dictionary schema