Logging in Ruby on Rails in Production Mode

user1135541 picture user1135541 · May 29, 2013 · Viewed 61.1k times · Source

I would like to view some variables in controller, it tried the following:

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

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

where can I see the output for Logger or Puts in production mode? Do I need so set something up to view these somewhere?

Answer

Martin M picture Martin M · May 30, 2013

The normal log level in production is info, so debug logs are not shown.
Change your logging to

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

to show it in production.log.

Alternatively (but not a good idea) you can raise the logging level in /config/environments/production.rb:

config.log_level = :debug

Update Rails 4.2:

Now the default debug level in all environments is :debug (as @nabilh mentioned).
If you want you production environment less chattery, you can reset your log level in /config/environments/production.rb to the former :info:

config.log_level = :info