2

ステージングと呼ばれるアプリ用のカスタム環境があります。なんらかの理由で staging.log ファイルが作成されず、そこに書き込まれていると思われるすべてのものが代わりに nginx error.log ファイルに表示されます。不足している構成オプションはありますか?

4

3 に答える 3

4

これは古い質問ですが、同じ問題に遭遇したばかりで、これに遭遇した他の誰かに役立つ場合に備えて、それを修正したものを共有したいと思いました.

私の場合、rails_12factor gem を使用していました (ある時点でアプリを Heroku にデプロイしたため)。これにより、すべてのログが stdout に送られます。これにより、すべてが nginx_error.log にダンプされました。アプリに Heroku を使用しなくなったため、gem を完全に削除して修正することができましたが、Heroku の展開をサポートする必要がある場合は、そのコンテキストでのみ rails_12factor が必要になるように、何らかの構成を追加できます。

于 2013-11-17T18:42:03.997 に答える
0

あなたが持っているnginxにログインするために:

  • error_logディレクティブについては、http://nginx.org/en/docs/ngx_core_module.html#error_logを参照してください
  • acces_logディレクティブについては、http://nginx.org/en/docs/http/ngx_http_log_module.html#access_logを参照してください

:で1つの落とし穴がありerror_logます

に設定している場合debug、nginxは--with-debugフラグを使用してコンパイルされていませんが、デフォルトのerror.logの場所にフォールスルーします。

フラグがnginxがコンパイルされたかどうかを確認するには、nginx -Vコマンドを使用します

于 2012-11-12T18:01:12.173 に答える
0

次のようなものを追加してみてください

c = ActiveSupport::BufferedLogger.new("log/staging.log")
c.auto_flushing = true
config.logger = c

また、 auto_flushingオプション、設定config/environments/staging.rb に関するRailsガイド、本番環境ではオフになっているとのことですが、理由はわかりません。こちらのBufferedLoggerのドキュメントを参照してください。私には完璧な解決策のようには見えませんが、機能しているように見えます。

于 2012-11-12T06:03:23.700 に答える