该应用正在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的工作原理有关吗?
答案 0 :(得分:0)
这可能与Engine Yard的工作原理有关。我对Engine Yard本身并不熟悉,但它与Heroku的服务类似,而且我知道要在Heroku中发送内容到日志,你必须使用stdout
或stderr
。
See here for more details about Heroku,看看它是否适用于Engine Yard (请记住,这不允许您拥有单独的日志文件,它只是将记录的行放在与其他日志文件相同的日志文件中记录的行)。