2011-01-12 12 views
2

mod_passengerを使用してApache上でRailsアプリケーションを実行しています。 Rails.loggerの呼び出しで、アプリケーションのログファイルではなくApacheエラーログに書き込むようにしたいと考えています(log/production.log)。アプリケーションログではなくApacheログにログを出力する

どうすればいいですか?あなたのアプリは、このようなファイルへのアクセス権を持っている必要があります。もちろん、

config.logger = Logger.new("/var/log/apache2/error.log") 

:あなたのconfig /環境/ production.rbファイルで

+0

これは私の質問に対する答えではありませんが、私は別の方法をとることに決めました。一つの懸案事項は、Railsアプリケーションの 'log /'ログファイルが非常に大きくなるということでした。私は今、その問題に対処するためにlogrotateを使用しています。 ApacheのログとRailsのアプリケーションログファイルの間でログメッセージを分割しますが、それだけで生き残る必要があります。 – rlandster

答えて

1

次のようなものを追加することができます。さらに、Apacheのエラーとアプリケーションのログを混在させることは、間違いなく良い考えです。

+0

Apacheが書いたものを上書きしないでしょうか? –

+0

良いアイデアだが、エラーログにインタリーブする可能性が高い。つまり、2つのプロセスが相互ロックなしで同じファイルに書き込みを行っているため、それらのメッセージは混在する可能性があります。 – noodl

1

これはあなたの質問に直接答えませんが、ちょっとしたテストをして、STDERR.puts "meep"がmod_passengerの使用中にApacheのエラーログに記録されました。

config.loggerSTDERRに指している可能性がありますか?

+0

私はこれを試してみます。 – rlandster

関連する問題