Rails はlog.auto_flushing
3.2 で廃止されました。を使用file.sync
することをお勧めします。
イニシャライザによって設定されたカスタム ロガー ファイルがあり、そのロガーに記録されるアクティブなサポート通知を購読しています。
通知は、Rails アプリと、cron で実行されている rake タスクによってトリガーされます。
を使用するlog.auto_flushing = true
と、すべてが期待どおりに機能し、ログ ファイルには、実行中の Rails アプリと cron タスクからの出力が含まれます。
に切り替えたところfile.sync = true
、奇妙なことが起こりました。ログを開く最初のプロセスはログに書き込むことができますが、別のプロセスが開始されるとすぐに、それ以外はログに記録されません。ログ ファイルは、newsyslog によってローテーションされるまで書き込まれません。この時点で、最初のプロセスは停止する前に数行をログに記録できます。
2 つの質問があります。
config/initializers
カスタム ログを設定する正しい場所はありますか?- 複数のプロセスが同じファイルにアクセスできるようにするために必要なことはありますか?
参考までに、私のconfig/notifications.rbを両方の構成で示します。