2

毎日ローテーションするようにenvironment.rbでRails2.3.8ロガーを構成しました。

config.logger = Logger.new("#{RAILS_ROOT}/logs/#{RAILS_ENV}.log", 'daily')

そして毎日朝に私はいつものようになります:

Error during failsafe response: Shifting failed.

これに対するまともな/エレガントな/より良い解決策はありますか?

私が過去に行ったことは、これが発生したときに通知し、Passengerrestart.txtファイルをアプリのtmp/ディレクトリにドロップするようにcronジョブを設定することです

ありがとう。

4

2 に答える 2

2

UNIX / Linuxでは、logrotateという名前のプログラムを使用してログファイルのローテーションを実行するのが一般的です。Slicehostには、その使用方法に関するすばらしい記事がいくつかあります。

Phusion Passengerデプロイメントの場合、以下の例のような構成を使用できます。明らかに、ディレクトリとローテーション頻度を適切に調整します。

/home/deploy/public_html/railsapp/shared/log/*.log {
  毎週
  missingok
  30回転
  圧縮
  delaycompress
  notifempty
  sharedscripts
  後回転
    /home/deploy/public_html/railsapp/current/tmp/restart.txtにタッチします
  エンドスクリプト
}
于 2010-08-03T16:47:39.350 に答える
1

同時に多くのリクエストが届き、Railsがログをローテーションするときが来た場合。ストリームがファイルに書き込もうとしている場合(logger.rbコードに@ dev.stat.sizeという行があります)、ファイルが存在しない場合(ローテーションされているため)、致命的な例外がスローされます。基本的に、サーバーはリクエストへの応答を停止します(必ずしもシャットダウンする必要はありませんが、リクエストに応じて爆破します。

于 2012-02-02T17:14:52.033 に答える