虽然我使用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.error
和try
块包装每个except
也是很丑陋的。
有什么好的模式来处理由basicConfig()
之类的日志方法引发的异常,还有可能由debug()
,error()
等引发的异常?
答案 0 :(得分:1)
除非您在代码中途重新初始化记录器,否则为什么不只在记录器初始化期间检查文件是否存在:
import os
if os.path.isfile(filename):
# Initialise the logger
这应该正常工作,除非以后的代码中的某些部分会尝试删除该文件,但我希望不是这种情况。