module Logtail::Integrations::Rails::RackLogger::InstanceMethods

@private

Constants

LOGGER

Public Class Methods

included(klass) click to toggle source
# File lib/logtail-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/logtail-rails/rack_logger.rb, line 24
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/logtail-rails/rack_logger.rb, line 38
def logger
  LOGGER
end