python - 在创建 python 记录器条目时调用函数
问题描述
我有一个将请求发送到休息 api 的客户端。客户端已经在生产中,并且以捕获可能发生的各种异常的方式编写。我想添加一点,以便每当记录异常消息时,都会调用一个函数,该函数将该异常消息与堆栈跟踪一起接收并将其发送到指定的电子邮件地址。我的第一次尝试是按以下方式启动记录器:
self.log = logging.getLogger(__name__)
self.log.exception = MagicMock(side_effect=self.log.exception)
然后检查是否调用了 log.exception。但是,这种方法不能让我访问日志消息或堆栈跟踪。有没有比扩展整个日志记录模块更简单的方法来实现这一点?
解决方案
如果MagicMock
是一个记录器对象并实现所有必需的方法(https://docs.python.org/3/library/logging.html),您可以添加使用以下内容:
fh = MagicMock()
fh.setLevel(logging.ERROR)
logger.addHandler(fh)
推荐阅读
- angular - Angular 6 组件可重用,而不是应用程序组件
- ruby-on-rails - Ruby on Rails:如何将文件附加到电子邮件
- python-3.x - 如何安装 Kmean?
- excel - 传递多个值并在单元格中获取选定的结果
- html - CSS样式中border和border-width属性之间的区别
- python - OSError:[WinError 10022] 在我的 Windows 10 机器中提供了无效参数
- apache - 在此服务器上找不到请求的 URL /。在 Wamp 3.1.0 中
- git - Gitlab推送到开发分支中的子目录
- laravel - 'lucid' 不是内部或外部命令、可运行程序或批处理文件
- python-3.x - 来自 Excel 的 Pycharm Matplotlib 中的未知错误