有没有一种简单的方法可以记录 Rails 应用中的所有方法调用?
我对此的主要用途是测试(和调试测试)。我希望拥有比堆栈跟踪提供的更多的历史记录(例如,在使用“-b”选项运行 rspec 时)。
最佳答案
这很容易做到。只需将 5 行代码添加到您的脚本/服务器中:
#!/usr/bin/env ruby
set_trace_func proc {
|event, file, line, id, binding, classname|
if event == "call" or event == "return"
printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
end
}
require File.expand_path('../../config/boot', __FILE__)
require 'commands/server'
它在 http://phrogz.net/ProgrammingRuby/ospace.html#tracingyourprogramsexecution 中有描述
您的应用程序将变得非常慢,并且您可能会得到比您想要的更多的输出。您可以轻松地在文件/类/函数名称上添加更多条件,以避免打印不需要的内容。
关于ruby-on-rails - 记录 Rails 应用程序中的所有方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7050896/