我正在寻找一种通用方法来在 Ruby 应用程序的代码库中保持核心逻辑和日志记录/调试/终端输出代码的分离。理想情况下,我希望有一个与我的应用程序核心(典型 Ruby 项目中的“lib”目录)平行的单独“跟踪器”代码库。跟踪代码将存在于一个特殊的目录(可能称为“trace”)中,就像单元测试通常存在于 test/spec 目录中的并行结构中一样。Tracer 文件将使用各种方法的包装器扩展目标类。这些包装器将执行诸如写入日志、设置断点(例如使用pry 's' binding.pry
)或在方法返回时增加进度条之类的操作。然后可以通过单个开关控制跟踪代码的加载。
我做了一些研究,大部分都是空白的。我找到了一些我想要的功能;例如,标准库的Tracer类和method_decorators gem。但我想知道那里有一个更完整的解决方案,类似于 rspec 用于测试。这样的事情存在吗?或者是否有其他方法可以解决这个问题?