Sha256: bf36c73c24320cd593b7ec4d793e8dc7c3fad13c96d08588f7a40b1d1c45301f

Contents?: true

Size: 1.44 KB

Versions: 10

Compression:

Stored size: 1.44 KB

Contents

module Sinatra
  # = Sinatra::QuietLogger
  #
  # QuietLogger extension allows you to define paths excluded
  # from logging using the +quiet_logger_prefixes+ setting.
  # It is inspired from rails quiet_logger, but handles multiple paths.
  #
  # == Usage
  #
  # === Classic Application
  #
  # You have to require the quiet_logger, set the prefixes
  # and register the extension in your application.
  #
  #     require 'sinatra'
  #     require 'sinatra/quiet_logger'
  #
  #     set :quiet_logger_prefixes, %w(css js images fonts)
  #     register Sinatra::QuietLogger
  #
  # === Modular Application
  #
  # The same for modular application:
  #
  #     require 'sinatra/base'
  #     require 'sinatra/quiet_logger'
  #
  #     set :quiet_logger_prefixes, %w(css js images fonts)
  #
  #     class App < Sinatra::Base
  #       register Sinatra::QuietLogger
  #     end
  #
  module QuietLogger

    def self.registered(app)
      quiet_logger_prefixes = app.settings.quiet_logger_prefixes.join('|') rescue ''
      return warn('You need to specify the paths you wish to exclude from logging via `set :quiet_logger_prefixes, %w(images css fonts)`') if quiet_logger_prefixes.empty?
      const_set('QUIET_LOGGER_REGEX', %r(\A/{0,2}(?:#{quiet_logger_prefixes})))
      ::Rack::CommonLogger.prepend(
        ::Module.new do
          def log(env, *)
            super unless env['PATH_INFO'] =~ QUIET_LOGGER_REGEX
          end
        end
      )
    end

  end
end

Version data entries

10 entries across 7 versions & 2 rubygems

Version Path
sinatra-contrib-2.2.4 lib/sinatra/quiet_logger.rb
sinatra-contrib-2.2.3 lib/sinatra/quiet_logger.rb
sinatra-contrib-2.2.2 lib/sinatra/quiet_logger.rb
sinatra-contrib-2.2.1 lib/sinatra/quiet_logger.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.1.0/gems/sinatra-contrib-2.1.0/lib/sinatra/quiet_logger.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/2.6.0/gems/sinatra-contrib-2.2.0/lib/sinatra/quiet_logger.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.0.0/gems/sinatra-contrib-2.1.0/lib/sinatra/quiet_logger.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/2.6.0/gems/sinatra-contrib-2.1.0/lib/sinatra/quiet_logger.rb
sinatra-contrib-2.2.0 lib/sinatra/quiet_logger.rb
sinatra-contrib-2.1.0 lib/sinatra/quiet_logger.rb