Rails 3.2.x アプリの cron ジョブを処理するために rufus-scheduler を使用しています。ルートworker.rb
はフォアマン (この特定のサーバーでは実際にはアップスタート) によって起動されているため、起動時に操作する Rails コンテキストがありません。明らかに、電話をかけようとするとlogger
、Rails.logger
毎回失敗します。
私はlog4r
デフォルトの Rails Logger の代わりとして使用しています。これは非常に優れていますが、この問題の適切な解決策は何だろうかと考えています。
1) 起動時にスクリプトに Rails コンテキストを与える必要がありますかrake
?環境を起動するのに非常に長い時間がかかるため、時限タスクを実行するのはやり過ぎです)?また
2) log4r
Rails アプリケーションが使用しているのと同じ log4r.yml 構成を読み込むだけで、同じログ構造に参加する、Rails 以外の Ruby スクリプトで行うように設定する必要がありますか?
3) または、私が考えていない他のオプションはありますか?
さらに、推奨される実装で検討する必要がある例または手順のいずれかをいただければ幸いです。
参考までに、「Rails 3.0.x で Log4r を構成する方法は? 」をフォローしましたが、上記の「 Ruby アプリケーションで Log4r を適切に使用していますか? 」と統合すると、これが役立つと思います。