【发布时间】:2020-06-11 22:55:18
【问题描述】:
是否可以在使用logging_config dict 创建记录器后添加处理程序?
具体来说,我想添加一个 FileHandler 以在运行脚本时设置特定参数时将错误输出保存到文件中。我在logging_config dict 中设置了 FileHandler,但不知道如何应用它。
我认为它可能类似于logger.addHandler(logging_config['handlers']['save_error']),但没有奏效。
我正在使用以下内容创建我的记录器:
logging.config.dictConfig(logging_config)
logger = logging.getLogger()
这是 logging_config 字典:
{
'version': 1,
'formatters': {
'default': {
'format': '%(asctime)s - %(levelname)s - %(threadName)s - %(message)s',
},
},
'handlers': {
'default': {
'formatter': 'default',
'class': 'logging.StreamHandler',
'stream': 'ext://sys.stdout',
'level': 'DEBUG',
},
'save_error': {
'formatter': 'default',
'class': 'logging.FileHandler',
'filename': '/var/log/app.log',
'mode': 'a',
'level': 'ERROR',
}
},
'root': {
'formatter': 'default',
'handlers': ['default'],
},
}
【问题讨论】: