我目前有三个记录错误的库。一种用于 Django,一种用于 Pyramid,一种用于纯 Python。他们目前都有单独的实现来做同样的事情,以特定方式记录错误和消息。
我想将它们全部整合到一个库中,这样新功能就不必在三个独立的库中重复。用户只需安装一个库,然后就可以选择是否需要 Django 或 Pyramid 支持。
一种解决方案是将 Django 和 Pyramid 代码粘贴到纯 Python 库中,并让两个 Web 框架共享相同的日志记录代码。另一种解决方案是将 Web 框架保留在单独的库中,但剥离日志记录实现,并将其放入普通 Python 库中,使其成为依赖项。
执行此操作的推荐方法是什么?有更好的解决方案吗?
请您参考如下方法:
分解出所有库中通用(并且可以通用)的代码。然后,如果需要,创建特定于每个框架的子模块,这些子模块与它们的各种特性和习惯用法相关联。
查看 Raven .他们正是这样做的(他们也是一个日志发送库!)
