我有一个部署到heroku的Rails应用程序,需要在heroku console
中挖掘一些数据。为了帮助我这样做,我在我的lib目录中创建了cmd.rb
,其中包含一些方法。这是它的样子:
class Cmd
def self.hello
puts "Hello World"
end
def self.create_member
# real code with multiple "puts" statements here
end
end
这是我在heroku控制台中尝试运行时获得的内容:
$ heroku console
Ruby console for myapp.heroku.com
>> puts User.count
515
=> nil
>> 3.times {|i| puts i}
0
1
2
=> 3
>> require "#{Rails.root}/lib/cmd"
=> true
>> Cmd
=> Cmd
>> Cmd.hello
=> nil
上面有一个明显缺乏“Hello World”。现在我可以在另一个终端窗口中看到输出:
heroku logs --tail
但是输出中有很多噪音,我希望能够逐步看到事物。
答案 0 :(得分:1)
我认为可能是因为Heroku实现控制台的方式:
在Bamboo上,heroku rake和heroku控制台被实现为特殊的执行路径,输出通过HTTP传递。这种方法有许多缺点,例如rake任务的超时和非交互性。
因此,一个解决方案可能是升级到Cedar:http://devcenter.heroku.com/articles/cedar
另一种解决方案可能是禁用rails_log_stdout
功能。我不明白该怎么做,但打开票可能会得到一个解决方案。
此外,您可以过滤日志结果。请参阅“过滤”:http://devcenter.heroku.com/articles/logging
答案 1 :(得分:0)
我认为你应该尝试使用Rails.logger而不是'puts'方法。