web-dev-qa-db-ja.com

ログインRuby on Rails本番モードで

コントローラでいくつかの変数を表示したいのですが、以下を試してみました:

Rails.logger.debug "Year: #{Time.now.year}"

puts "Year: #{Time.now.year}, Month: #{@month}"

loggerまたはPutsの出力はどこで確認できますか?これらをどこかに表示するために何かを設定する必要がありますか?

39
user1135541

本番環境の通常のログレベルはinfoであるため、debugログは表示されません。
ログを変更します

Rails.logger.info "Year: #{Time.now.year}"

production.logに表示します。

別の方法として(ただし、お勧めできません)、/config/environments/production.rbのログレベルを上げることができます。

config.log_level = :debug

更新 Rails 4.2:

現在、すべての環境でのデフォルトのデバッグレベルは:debugです(@nabilhが述べたように)。
本番環境でおしゃべりを減らしたい場合は、/config/environments/production.rbのログレベルを以前の:infoにリセットできます。

config.log_level = :info
104
Martin M

@ martin-mは正しいと思いますが、おそらくconfig.log_level = :debug/config/environments/production.rbを使用してログを乱雑にしたくないでしょうが、デフォルトのログレベルは all環境はdebug Rails 4.2以降)です。したがって、debugログ(およびすべてのレベルアップ)は特に指定しない限り、本番環境。

あなたの質問に答えて、次のように書くことができます:

Rails.logger.debug "Year: #{Time.now.year}"および/log/production.logの結果を参照してください。

詳細なドキュメントについては、 here を参照してください。 ここ は、比較のためのRails 4.1のドキュメントです。

6
nabilh