15

Rails3.1アプリをHerokuCedarにデプロイしました。ロギングに問題があります。デフォルトのRailsログは問題なく機能していますが、次のようなことをすると次のようになります。

logger.info "log this message"

私のコントローラーでは、Herokuは何もログに記録しません。アプリをデプロイすると、herokuメッセージ「Injectingrails_log_stdout」が表示されるので、ロガーの呼び出しは問題なく機能するはずです。putsステートメントは私のログに記録されます。logger.errorのような他のログレベルも試しました。何も機能しません。他の誰かがこれを見たことがありますか?

4

4 に答える 4

35

MBHNYC の回答はうまく機能しますが、コードを変更せずにさまざまな環境でログ レベルを変更することは困難です。このコードを使用environments/production.rbして、環境変数を尊重し、適切なデフォルトを設定できます。

# https://github.com/ryanb/cancan/issues/511
config.logger = Logger.new(STDOUT)
config.logger.level = Logger.const_get((ENV["LOG_LEVEL"] || "INFO").upcase)

次のコマンドを使用して、別のログ レベルを設定します。

heroku config:set LOG_LEVEL=error
于 2012-05-03T18:12:58.470 に答える
20

I was just having the same issue, solved by using the technique here:

https://github.com/ryanb/cancan/issues/511

Basically, you need to specify the logger outputs to STDOUT, some gems interfere with the logger and seem to hijack the functionality (cancan in my case).

For the click lazy, just put this in environments/production.rb

config.logger = Logger.new(STDOUT) 
config.log_level = :info
于 2011-11-23T21:21:08.097 に答える
4

現時点では、heroku がスラッグをビルドするときに次の 2 つのプラグインを挿入しているようです。

rails_log_stdout - https://github.com/ddollar/rails_log_stdout

rails3_server_static_assets - https://github.com/pedro/rails3_serve_static_assets

既存の Rails ロガーに送信されたものはすべて破棄され、ログには表示されません。ここにたどり着いた他の人のために、完全を期すためにこれを追加するだけです。

于 2012-11-01T21:17:57.620 に答える