2011-09-21 90 views
3

我已经部署到Heroku的一个Rails应用程序,并需要heroku console到Munge时间的一些数据。为了帮助我做到这一点我已经在我的lib目录下创建cmd.rb在它的一些方法。这里是什么样子:为什么我不能打印Heroku的控制台(“看跌期权”)?

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

我发现我得到的,如果我做'Heroku的日志 - 尾--ps web.1',但它仍然是相当嘈杂少了几分日志输出。 – Purplejacket

回答

0

我想你应该尝试使用,而不是方法“使” Rails.logger。

+0

我试过'Rails.logger' - 同样的结果。 'puts'基本上和'Rails.logger'一样。 – Purplejacket

1

我认为这可能是因为Heroku的实现控制台方式:

竹,Heroku的耙子和Heroku的控制台被实现为特例,执行路径,以通过HTTP输出。这种方法有一些弱点,例如超时和非交互式的耙任务。

所以,一个解决办法是升级到雪松:http://devcenter.heroku.com/articles/cedar

另一种解决办法是禁用rails_log_stdout功能。我没有弄清楚怎么做,但打开票可能会得到一个解决方案。

此外,您可以过滤日志结果。见“过滤”:http://devcenter.heroku.com/articles/logging

相关问题