1

Resque ロガーに問題があります。コマンドラインから通常どおり起動すると、すべて正常に機能します(標準出力にフラッシュされます)。しかし、デーモン化するとすぐに、ログが表示されなくなります。デフォルトで Rails アプリのロガーになると思っていたのですが、何も表示されません。さらに、出力の大部分を (主にデバッグ目的で) 標準エラー出力と標準出力 (つまり、$stderr と $stdout) に書き込むライブラリを使用しています。これらの定数は resque ロガーにフラッシュしますか (さらに、フラッシュする必要があります)? どうすればそれらをすべてまとめることができますか?

それだけでなく、フォークされたプロセスのログを別のファイルに書きたい、つまり、ジョブを処理する前にログ ファイルを変更する必要がありました。どこ(どのフック)が最適ですか?

4

1 に答える 1

2

質問1 :

デフォルトでRailsアプリロガーになると思っていた

答え 1:

いいえ、ResqueロガーのデフォルトのログSTDOUT を特定のファイルにログするように変更しました。

質問2:

さらに、出力の大部分を (主にデバッグ目的で) 標準エラー出力と標準出力 (つまり、$stderr と $stdout) に書き込むライブラリを使用しています。

答え 2:

Resque.logger.[info|warn|error]いいえ、構文で出力をログに記録しない限り

質問 3:

それだけでなく、フォークされたプロセスのログを別のファイルに書きたい、つまり、ジョブを処理する前にログ ファイルを変更する必要がありました。どこ(どのフック)が最適ですか?

答え 3:

まあ、あなたがしなければならないことは、Resque.loggerin resque フックを次のように再定義することだけです。before_perform

   def self.before_perform
     Resque.logger = File.open(File.join("path"))
   end

そしてResque.logger.[info | warn | error]どこでも使用

この助けを願っています

于 2013-08-16T05:53:12.773 に答える