2011-09-21 131 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

相關問題