title: How do I enable error logging in my Rails production logs?
body: <p>I'm using Rails 5 behind Unicorn.  When I run visit a particular page on my production instance of my app, I get an error</p>
  
  <pre><code>We're sorry, but something went wrong.
  If you are the application owner check the logs for more information.
  </code></pre>
  
  <p>When I look in my myproject/log/production.log file, I see the request, but no explanation of why the error occurred ...</p>
  
  <pre><code>Started GET "/my_objects/search?utf8=%E2%9C%93&amp;first_name=Dave&amp;last_name=&amp;my_object=&amp;x=12&amp;y=13" for 96.84.106.123 at 2017-12-29 15:34:20 -0500
  Processing by my_objectsController#search as HTML
    Parameters: {"utf8"=&gt;"✓", "first_name"=&gt;"Dave", "last_name"=&gt;"", "my_object"=&gt;"", "x"=&gt;"12", "y"=&gt;"13"}
    Rendering my_objects/search.html.erb within layouts/my_object
    Rendered my_objects/_search.html.erb (1.3ms)
  </code></pre>
  
  <p>How do I enable the errors to appear in my log file?  Below is how my logger is configured in my ./config/environments/production.rb file ...</p>
  
  <pre><code>Rails.application.configure do
    # Settings specified here will take precedence over those in config/application.rb.
  
    # Code is not reloaded between requests.
    config.cache_classes = true
  
    # Eager load code on boot. This eager loads most of Rails and
    # your application in memory, allowing both threaded web servers
    # and those relying on copy on write to perform better.
    # Rake tasks automatically ignore this option for performance.
    config.eager_load = true
  
    # Full error reports are disabled and caching is turned on.
    config.consider_all_requests_local       = false
    config.action_controller.perform_caching = false
  
    # Enable Rack::Cache to put a simple HTTP cache in front of your application
    # Add `rack-cache` to your Gemfile before enabling this.
    # For large-scale production use, consider using a caching reverse proxy like
    # NGINX, varnish or squid.
    # config.action_dispatch.rack_cache = true
  
    # Disable serving static files from the `/public` folder by default since
    # Apache or NGINX already handles this.
    config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
  
    # Compress JavaScripts and CSS.
    config.assets.js_compressor = :uglifier
    # config.assets.css_compressor = :sass
  
    # Do not fallback to assets pipeline if a precompiled asset is missed.
    config.assets.compile = false
  
    # Asset digests allow you to set far-future HTTP expiration dates on all assets,
    # yet still be able to expire them through the digest params.
    config.assets.digest = true
  
    # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
  
    # Specifies the header that your server uses for sending files.
    # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
    # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
  
    # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
    # config.force_ssl = true
  
    # Use the lowest log level to ensure availability of diagnostic information
    # when problems arise.
    config.log_level = :debug
  
    # Prepend all log lines with the following tags.
    # config.log_tags = [ :subdomain, :uuid ]
  
    # Use a different logger for distributed setups.
    # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
  
    # Use a different cache store in production.
    config.cache_store = :memory_store, { size: 32.megabytes }
  
    # Enable serving of images, stylesheets, and JavaScripts from an asset server.
    # config.action_controller.asset_host = 'http://assets.example.com'
  
    # Ignore bad email addresses and do not raise email delivery errors.
    # Set this to true and configure the email server for immediate delivery to raise delivery errors.
    # config.action_mailer.raise_delivery_errors = false
  
    # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
    # the I18n.default_locale when a translation cannot be found).
    config.i18n.fallbacks = true
  
    # Send deprecation notices to registered listeners.
    config.active_support.deprecation = :notify
  
    # Use default logging formatter so that PID and timestamp are not suppressed.
    config.log_formatter = ::Logger::Formatter.new
  
    # Do not dump schema after migrations.
    config.active_record.dump_schema_after_migration = false
  
    config.serve_static_files = true
    config.assets.compile = true
  
    # Raises error for missing translations
    # config.action_view.raise_on_missing_translations = true
    # Comment out the two lines withinn here so taht queries can be seen in the console
    config.after_initialize do
      ActiveRecord::Base.logger = Rails.logger.clone
      ActiveRecord::Base.logger.level = Logger::INFO
    end
  
    config.logger = ActiveSupport::Logger.new(config.paths['log'].first, 1, 50 * 1024 * 1024)
  
    # This is the classpath where we expect to find JAR files that will help decode Word documents.
    config.java_class_path = "/usr/java/share/poi-3.16/poi-3.16.jar:/usr/java/share/poi-3.16/poi-ooxml-3.16.jar:/usr/java/share/poi-3.16/poi-ooxml-schemas-3.16.jar:/usr/java/share/poi-3.16/ooxml-lib/xmlbeans-2.6.0.jar:/usr/java/share/poi-3.16/poi-scratchpad-3.16.jar:/usr/java/share/poi-3.16/lib/commons-collections4-4.1.jar:."
  
  end
  </code></pre>