2012-04-28 8 views
6

私は最近、herokuアプリケーションでoink gemを使用し始めました。これは、コントローラの動作によっては小さなメモリリークが発生していることに気付きました。 oink logsコマンドはローカルでうまく動作しますが、私の本番サイトで動作させるためのコマンドを理解することはできません。oink logsコマンドがherokuで動作しない

は、ここで私がしようとしているコマンドです:

heroku run oink /log/* 

そして、ここで私のproduction.rbファイルからの行です:私のローカルインストールで

config.middleware.use(Oink::Middleware, :logger => Rails.logger) 

は、OINKは/log/oink.logファイルにログを格納しています。

答えて

-1

あなたはここで

heroku run bundle exec oink log/production.log 
+0

技術的な修正を表示する--threshold = 0と

使用OINK: 'Herokuの実行バンドルのexec OINKログ/ \ *'、そうでない場合はスプラットは、ローカルログにパスを引き起こす、局部的に解釈されますherokuに渡すファイル。つまり、Herokuは実際にディスクにログファイルを格納していないので、このコマンドはまだ動作していないようです。 –

-1

を試してみてはHerokuのサポートからの応答である:OINKを使用して、ほとんどのケースで

は」ローカルにありますHerokuのファイルシステムは一時的なものであり、各dynoは独自の独立したファイルシステムを持っているので、ファイルを作成してフェッチするのはあまり実用的ではありません。あなたのHerokuログにメッセージが表示されるはずのstdoutまたはrails loggerに書き込むにはOinkを使ってください。log drainPapertrailのログアーカイブアドオンを使ってローカルコピーを入手することができます。

開発中に使用するように思われるようです。または、stdoutに書き込むことができ、ログを自分自身を正しい形式に書き出したら、

私はすぐに気づくことができませんでしたので、heroku-api gemを使用して、cronジョブから数時間ごとに自動的にアプリケーションサーバーを再起動しました。これは一時的な修正として機能しました。ここで

1

を実行する必要があります本番ログを分析するには

heroku run bundle exec oink log/* 
2

は答えます:https://stackoverflow.com/a/14145299/1684322

そうOINKログファイルを解析する失敗しますHodel3000CompliantLoggerの代わりRails.loggerを使用することが重要です。 OINKは後で

によって捕捉することができるデフォルトのログファイルに書き込みを行います設定/初期化子/ oink.rb

YourApplication::Application.middleware.use(Oink::Middleware, :logger => Hodel3000CompliantLogger.new(STDOUT), :instruments => :memory) 

ではないのconfig /環境/ production.rbでなく、例えばもを構成することができます

heroku logs -n500 --app app_name > logfile_for_oink 

また、PaperTrailのような他のログ管理ツールを使用するか、syslog drain(別の* nixボックスにrsyslog)を設定してください。すべてのエントリ

関連する問題