0

アプリは Engine Yard で実行されています。いつでも実行されるスクリプト内からいくつかのデータをログに記録する必要があります。外観は次のとおりです。

スケジュール.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 の仕組みと関係がありますか?

4

1 に答える 1

0

これはおそらく、Engine Yard の仕組みに関係しています。Engine Yard 自体には詳しくありませんが、Heroku と同様のサービスであり、Heroku のログに何かを送信するには、stdoutまたはを使用する必要があることを知っていますstderr

Heroku の詳細については、こちらを参照してください。また、Engine Yard で同じことが機能するかどうかを確認してください(これにより、別のログ ファイルを持つことができないことに注意してください。ログに記録された行が、他のログに記録された行と同じログ ファイルに入れられるだけです)

于 2012-06-28T08:15:41.363 に答える