日志记录本身的Python异常处理

时间:2020-06-12 04:27:29

标签: python python-3.x exception logging

虽然我使用logging记录异常,但是在我看来logging库本身的方法会引发异常。

例如,如果为日志文件设置了“错误”路径,例如

import logging
logging.basicConfig(filename='/bad/path/foo.log')

将抛出FileNotFoundError

假设我处理这些logging异常的目的是保持程序运行(而不是退出,否则程序会这样做)。首先想到的是

try:
    logging.basicConfig(filename='/bad/path/foo.log')
except Exception:
    pass

但是some to be an antipattern考虑​​了这一点。用logging.errortry块包装每个except也是很丑陋的。

有什么好的模式来处理由basicConfig()之类的日志方法引发的异常,还有可能由debug()error()等引发的异常?

1 个答案:

答案 0 :(得分:1)

除非您在代码中途重新初始化记录器,否则为什么不只在记录器初始化期间检查文件是否存在:

import os

if os.path.isfile(filename):

    # Initialise the logger 

这应该正常工作,除非以后的代码中的某些部分会尝试删除该文件,但我希望不是这种情况。