【发布时间】:2021-11-25 09:37:54
【问题描述】:
我有多个处理程序,我想将它附加到单个处理程序。有没有有效的方法来做到这一点。
logger = logging.getLogger('logger')
logger.setLevel(logging.DEBUG)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
summary = logging.FileHandler(filename='text_logger.txt', mode='w')
summary.setLevel(logging.INFO)
overview = logging.FileHandler(filename='overview.log', mode='w')
logger.addHandler(console_handler)
logger.addHandler(summary)
logger.addHandler(overview)
我必须多次使用addHandler。有没有更好的方法来做到这一点,比如提供列表。我快速浏览了文档,但没有找到。我可能错过了什么。
我正在考虑定义dict 是一种选择。但是建议。
【问题讨论】:
-
没有。顺便说一句,我在创建处理程序后添加它们 - 它使更改更直观,因为与它旁边的处理程序相关的所有代码。多亏了这一点,我实际上创建了条件处理程序(例如,仅当存在 -v/--verbose 标志时才会使用标准输出处理程序)。 :)