Ars*_*en7 21
您应该使用记录器而不是puts.使用这种陈述:
Rails.logger.debug "DEBUG: #{self.inspect} #{caller(0).first}" if Rails.logger.debug?
Run Code Online (Sandbox Code Playgroud)
如果您想实时查看调试(几乎),只需tail在另一个终端窗口中使用该命令:
tail -F log/development.log | grep DEBUG
Run Code Online (Sandbox Code Playgroud)
然后,您不需要在生产中删除这些语句,并且它们不会过多地降低性能,因为这if logger.debug?将阻止消息字符串的(可能是昂贵的)构造.
使用标准输出进行调试通常是一种不好的做法.如果您需要此类调试,请使用诊断STDERR,如:
STDERR.puts "DEBUG: xyzzy"
Run Code Online (Sandbox Code Playgroud)
Rails中的大多数类(模型,控制器和视图)都有这个方法logger,所以如果可能的话,使用它而不是完整的Rails.logger.如果您使用的是旧版本的Rails,请使用常量RAILS_DEFAULT_LOGGER而不是Rails.logger.
| 归档时间: |
|
| 查看次数: |
5307 次 |
| 最近记录: |