123456789_123456789_123456789_123456789_123456789_

Class: Rails::Rack::SilenceRequest

Relationships & Source Files
Inherits: Object
Defined in: railties/lib/rails/rack/silence_request.rb

Overview

Allows you to silence requests made to a specific path. This is useful for preventing recurring requests like health checks from clogging the logging. This middleware is used to do just that against the path /up in production by default.

Example:

config.middleware.insert_before \
  Rails::Rack::Logger, Rails::Rack::SilenceRequest, path: "/up"

This middleware can also be configured using config.silence_healthcheck_path = "/up" in ::Rails.

Class Method Summary

Instance Method Summary

Constructor Details

.new(app, path:) ⇒ SilenceRequest

[ GitHub ]

  
# File 'railties/lib/rails/rack/silence_request.rb', line 20

def initialize(app, path:)
  @app, @path = app, path
end

Instance Method Details

#call(env)

[ GitHub ]

  
# File 'railties/lib/rails/rack/silence_request.rb', line 24

def call(env)
  if env["PATH_INFO"] == @path
    Rails.logger.silence { @app.call(env) }
  else
    @app.call(env)
  end
end