puts不会打印到控制台

时间:2011-04-15 07:20:32

标签: ruby-on-rails ruby printing console logging

我正在使用POW进行本地rails开发。我不知道为什么,但我不能打印放置信息到我的development.log。我想将变量的内容从控制器放入控制台/日志。有什么建议吗?

我用tail -f logs/development.log

读取了我的日志

谢谢!

4 个答案:

答案 0 :(得分:41)

而不是puts,请尝试logger.info()Logging in Rails非常灵活,但它确实意味着您有时可能无法使用最简单的工具。

答案 1 :(得分:9)

如果您正在进行调试并且只想在日志中看到一些消息,则可以执行以下操作:

Rails.logger.debug("debug::" + person.name)

$ pow logs | grep debug::

现在您只会看到以debug ::

开头的日志消息

答案 2 :(得分:1)

另一个选择是使用rails标记记录器http://api.rubyonrails.org/classes/ActiveSupport/TaggedLogging.html

logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
logger.tagged('BCX') { logger.info 'Stuff' }                            # Logs "[BCX] Stuff"

$ pow logs | grep BCX

答案 3 :(得分:0)

对于仍然无法使用它的人,请记住Ruby不使用分号。它们仅用于chain commands。由于肌肉记忆(来自PHP),我最后在最后添加它们,所以ruby控制台认为我还在输入命令:

irb(main):001:0> puts "hi";
irb(main):002:0* puts "hi"
hi
hi
=> nil

希望这有助于某人。