module Timber::Integrations::Rails::RackLogger::InstanceMethods

@private

Constants

LOGGER

Public Class Methods

included(klass) click to toggle source
# File lib/timber-rails/rack_logger.rb, line 17
def self.included(klass)
  klass.class_eval do
    private
      if ::Rails::VERSION::MAJOR == 3
        # Rails 3.2 calls Rails.logger directly in call_app, so we
        # will just replace it with a version that doesn't
        def call_app(_, env)
          # Put some space between requests in development logs.
          if ::Rails.env.development?
            ::Rails.logger.info ''
            ::Rails.logger.info ''
          end
          @app.call(env)
        ensure
          ActiveSupport::LogSubscriber.flush_all!
        end
      end

      # Rails > 3.2 uses a logger method. Muting logs is accomplished by
      # passing a dummy logger instance with a nil log device.
      def logger
        LOGGER
      end
  end
end

Public Instance Methods

call_app(_, env) click to toggle source

Rails 3.2 calls Rails.logger directly in call_app, so we will just replace it with a version that doesn't

# File lib/timber-rails/rack_logger.rb, line 23
def call_app(_, env)
  # Put some space between requests in development logs.
  if ::Rails.env.development?
    ::Rails.logger.info ''
    ::Rails.logger.info ''
  end
  @app.call(env)
ensure
  ActiveSupport::LogSubscriber.flush_all!
end
logger() click to toggle source

Rails > 3.2 uses a logger method. Muting logs is accomplished by passing a dummy logger instance with a nil log device.

# File lib/timber-rails/rack_logger.rb, line 37
def logger
  LOGGER
end