Class: RackSilence::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/rack_silence.rb

Overview

Impose silence on the app’s logger

Instance Method Summary collapse

Constructor Details

#initialize(app, opts = {}) ⇒ Logger

Returns a new instance of Logger.

Parameters:

  • app

    Rack app

  • logger

    set logger to control. Make it lazy in a ‘proc` Defaults to a lazy `Rails.logger`

  • header

    check header ‘X-SILENCE-LOGGER` before silencing Can be true, false, or `:token`

  • silenced

    array of criterias to silence Can be ‘String` or `Regexp` to match a path, or `Token` objects



25
26
27
28
29
30
31
# File 'lib/rack_silence.rb', line 25

def initialize(app, opts = {})
  @app = app
  @opts = opts
  @opts[:silenced] ||= []
  @opts[:logger]   ||= -> { Rails.logger }
  @opts[:level]    ||= ::Logger::ERROR
end

Instance Method Details

#call(env) ⇒ Object



33
34
35
36
37
38
# File 'lib/rack_silence.rb', line 33

def call(env)
  return @app.call(env) unless silence?(env)

  silence_new_relic
  silence(logger) { @app.call(env) }
end