2

development.log私の Rails プロジェクトでは、アクションが完了した直後にログ ファイルに書き込まれるのではなく、他のアクションが完了した後で (または、しばらく時間が経ってからかどうかはわかりません)、アクションがログ ファイルに書き込まれる場合があることに気付きました。ファイルはdevelopment.log書かれていますか?

4

2 に答える 2

4

Rails 3.2 用に更新

Rails のデフォルトのロギングはバッファリングされるため、ログ メッセージはすぐには書き込まれず、バッチで発生します。次のコマンドを使用して、ロガーにバッファを強制的にフラッシュさせることができます。

これは古い方法でした。3.2以降、ファイルシステムはログを書き込む前にバッファリングを処理します。

ActiveSupport::BufferedLogger#auto_flushing は非推奨です。次のように、基になるファイルハンドルに同期レベルを設定します。または、ファイルシステムを調整してください。FS キャッシュがフラッシュを制御するようになりました。

config/environments/development.rbを変更して、すべてのログ メッセージで自動フラッシュすることができます。

config.autoflush_log = true

これは、bootstrap.rbによってログの同期を強制するために使用されます (例: f.sync = true )。これはパフォーマンスに顕著な影響を与えます。

于 2012-10-22T20:06:31.160 に答える
2

なぜlog4rを使わないのですか?

  1. とても速いです
  2. タイムスタンプをサポートしています
  3. 必要に応じて出力形式をカスタマイズできます。

使用方法については、 https ://stackoverflow.com/a/5959013/445908 を参照してください。

于 2012-10-22T21:40:18.487 に答える