当我编写代码时,我非常频繁地使用“puts”语句进行调试。它允许我查看服务器中发生的情况。
在调试代码的时候,不知道是什么原因,我把这些“puts”语句去掉了。
这是个好主意还是我应该保留它们以使我的服务器日志更加清晰?
最佳答案
您应该使用记录器而不是puts
。使用这种语句:
Rails.logger.debug "DEBUG: #{self.inspect} #{caller(0).first}" if Rails.logger.debug?
如果您想(几乎)实时查看调试,只需在另一个终端窗口中使用 tail
命令:
tail -F log/development.log | grep DEBUG
然后您不需要在生产中删除这些语句,它们不会降低性能太多,因为 if logger.debug?
会阻止消息字符串的构造(可能代价高昂)。
使用标准输出进行调试通常是一种不好的做法。如果您需要此类调试,请使用诊断 STDERR
,如:
STDERR.puts "DEBUG: xyzzy"
Rails 中的大多数类(模型、 Controller 和 View )都有方法 logger
,因此如果可能,请使用它而不是完整的 Rails.logger
。
如果您使用的是旧版本的 Rails,请使用常量 RAILS_DEFAULT_LOGGER
而不是 Rails.logger
。
关于ruby-on-rails - 放置调试语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7316074/