Rails 3 +每当Gem + Rake记录问题

时间:2012-06-28 07:41:41

标签: ruby-on-rails cron rake whenever engineyard

该应用正在Engine Yard上运行。我需要记录每次运行的脚本内部的一些数据。这是它的样子:

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的工作原理有关吗?

1 个答案:

答案 0 :(得分:0)

这可能与Engine Yard的工作原理有关。我对Engine Yard本身并不熟悉,但它与Heroku的服务类似,而且我知道要在Heroku中发送内容到日志,你必须使用stdoutstderr

See here for more details about Heroku,看看它是否适用于Engine Yard (请记住,这不允许您拥有单独的日志文件,它只是将记录的行放在与其他日志文件相同的日志文件中记录的行)