我正在寻找一种在Ruby应用程序的代码库中维护核心逻辑和记录/调试/终端输出代码分离的通用方法。理想情况下,我希望有一个单独的“跟踪器”代码库,与我的应用程序内核(典型Ruby项目中的'lib'目录)平行。跟踪代码可以存放在一个特殊的目录下(或许称为“跟踪”),就像单元测试通常位于test/spec目录中的并行结构一样。 Tracer文件将使用各种方法的包装来扩展目标类。这些包装可以执行诸如写入日志,设置断点(例如使用pry的'binding.pry
)或每当方法返回时递增进度条。跟踪代码的加载可以通过单个开关来控制。如何在Ruby应用程序中分离核心逻辑和日志代码?
我已经做了一些研究,并提出大多是空白。我发现了一些我以后的功能;例如,标准库的Tracer类和method_decorators gem。但我想知道有一个更完整的解决方案,类似于rspec进行测试。这样的事情存在吗?或者还有其他解决这个问题的方法吗?
我很难与rspec有关的任何事情记录在日志中;你希望这看起来像和/或做什么?根据其性质记录代码和需求特定; *你想记录什么?你将如何在*方法中去任意位置做“某事”? *包装*功能很简单,但尚不清楚这是否是你想要的。 –
@Dave没有什么关于我正在寻找的功能,类似于RSpec;相似之处在于RSpec(或其他单元测试框架)通常用于构建与实际应用程序代码并行并在其上运行的代码“层”,只在需要运行单元测试时加载。日志/命令行输出层可以以类似的方式构建。如果它很重要,我目前想要记录的是多步数学计算中的中间步骤,但这确实是重点。 (继续) –
@Dave我正在寻找一个框架/库,它提供了一个通用的解决方案,用于逻辑与报告的分离。是的,记录的内容是特定于代码的 - 但是记录指令与逻辑的分离不是。 –