2012-06-28 48 views
0

該應用程序在Engine Yard上運行。我需要從Whenever運行的腳本內部記錄一些數據。這裏是什麼樣子:Rails 3 +每當Gem + Rake日誌記錄問題時

schedule.rb:

every 1.minute do 
    rake 'my_tasks:task1 my_tasks:task2', :output => 'log/my_tasks.log' 
end 

task1將運行中有以下行(只是爲了測試目的)的腳本:

... 

log('test') 


... 

def self.log(string) 
    logfile = '/var/log/engineyard/apps/my_app/test_log.log' 
    File.open(logfile, 'a') { |log| log.puts(string << "\n\n") } 
end 

的問題是,無論我嘗試什麼,都不會創建日誌(my_tasks.log,test_log.log)。當我從控制檯運行bundle exec rake my_tasks:task1時,它成功創建test_log.log文件並記錄消息。什麼可能是錯的?它與Engine Yard的工作原理有關嗎?

回答

0

這可能與Engine Yard的工作方式有關。我對Engine Yard本身並不熟悉,但它與Heroku有類似的服務,並且我知道在發送某些內容以登錄Heroku時,必須使用stdoutstderr

See here for more details about Heroku,看看是否對Engine Yard的同一作品(請記住,這不會讓你有單獨的日誌文件,它只是把所記錄的線在同一個日誌文件等記錄線)