2013-05-29 10 views
28

Ich mag würde einige Variablen in der Steuerung anzuzeigen, versucht es die folgende:Logging in Ruby on Rails im Produktionsmodus

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

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

wo kann ich die Ausgabe für Logger oder Puts sehen im Produktionsmodus? Muss ich etwas einrichten, um diese irgendwo zu sehen?

Antwort

79

Die normale Protokollierungsstufe in der Produktion ist info, daher werden debug Protokolle nicht angezeigt.
Ihre Protokollierung ändern zu

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

es in production.log zu zeigen.

Alternativ (aber keine gute Idee) Sie die Protokollierungsstufe in /config/environments/production.rb erhöhen kann:

config.log_level = :debug 

aktualisiert Rails 4.2:

Nun ist der Standard-Debug-Level in allen Umgebungen ist :debug (wie @nabilh erwähnt).
Wenn Sie Sie Produktionsumgebung weniger Chattery möchten, können Sie Ihre Log-Level in /config/environments/production.rb dem ehemaligen :info zurück:

config.log_level = :info 
6

Während ich @ martin-m glauben ist richtig, dass Sie wahrscheinlich Ihre nicht Krempel wollen Logs mit config.log_level = :debug in /config/environments/production.rb, glaube ich, die Standard-Logging-Level in alle Umgebungen ist debug wie von Rails 4.2. So werden debug Protokolle (und alle Ebenen höher) in der Produktion angezeigt, wenn Sie nichts anderes angeben.

So als Antwort auf Ihre Frage, können Sie jetzt schreiben:

Rails.logger.debug "Year: #{Time.now.year}" und die Ergebnisse in /log/production.log sehen.

Weitere Informationen finden Sie unter here. Here ist die Dokumentation für Rails 4.1 zum Vergleich.