Sha256: c4579da3c737cdee3e61251daddb9026d099677139630294298587e55219391a

Contents?: true

Size: 897 Bytes

Versions: 7

Compression:

Stored size: 897 Bytes

Contents

require 'rack'
class QuietCommonLogger < Rack::CommonLogger
  include Rack

  @@ignore_extensions = %w(png jpg jpeg ico gif woff tff svg eot css js)

  def call(env)
    path = env['PATH_INFO']
    began_at = Time.now
    status, header, body = @app.call(env)
    header = Utils::HeaderHash.new(header)
    base = ::File.basename(path)
    if base.index('.')
      ext = base.split('.').last
    else
      ext = nil
    end

    @logged = false

    body = BodyProxy.new(body) do
      # Don't log on ignored extensions
      if !@@ignore_extensions.include?(ext) && !@logged
        log(env, status, header, began_at)
      end
    end

    # Because of web sockets, the initial request doesn't finish, so we
    # can just trigger it now.
    unless ext || path.start_with?('/channel')
      @logged = true
      log(env, status, header, began_at)
    end

    [status, header, body]
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
volt-0.9.5.pre1 lib/volt/server/rack/quiet_common_logger.rb
volt-0.9.4 lib/volt/server/rack/quiet_common_logger.rb
volt-0.9.4.pre5 lib/volt/server/rack/quiet_common_logger.rb
volt-0.9.4.pre3 lib/volt/server/rack/quiet_common_logger.rb
volt-0.9.4.pre2 lib/volt/server/rack/quiet_common_logger.rb
volt-0.9.4.pre1 lib/volt/server/rack/quiet_common_logger.rb
volt-0.9.3 lib/volt/server/rack/quiet_common_logger.rb