Class: Puma::CommonLogger

### Home Classes Methods

### In Files

- lib/puma/commonlogger.rb

### Parent

Object

### Methods

- ::new
- #call

### Files

- Manifest.txt

### Class/Module Index

Quicksearch

- Puma
- Puma::App
- Puma::App::Status
- Puma::Binder
- Puma::CLI
- Puma::Client
- Puma::Cluster
- Puma::Cluster::Worker
- Puma::CommonLogger
- Puma::ConfigDefault
- Puma::Configuration
- Puma::Configuration::ConfigMiddleware
- Puma::ConnectionError
- Puma::Const
- Puma::ControlCLI
- Puma::DSL
- Puma::Delegation
- Puma::Events
- Puma::Events::DefaultFormatter
- Puma::Events::PidFormatter
- Puma::IOBuffer
- Puma::JRubyRestart
- Puma::JavaIOBuffer
- Puma::MiniSSL
- Puma::MiniSSL::Context
- Puma::MiniSSL::SSLError
- Puma::MiniSSL::Server
- Puma::MiniSSL::Socket
- Puma::NullIO
- Puma::Rack
- Puma::Rack::Builder
- Puma::Rack::Options
- Puma::Rack::URLMap
- Puma::Reactor
- Puma::Runner
- Puma::Server
- Puma::Single
- Puma::TCPLogger
- Puma::ThreadPool
- Puma::ThreadPool::AutoTrim
- Puma::ThreadPool::Reaper
- Puma::UnsupportedOption
- Puma::Util
- Puma::Util::HeaderHash
- OpenSSL
- OpenSSL::SSL
- OpenSSL::SSL::SSLServer
- Rack
- Rack::Handler
- Rack::Handler::Puma
- IO
- IO::WaitReadable
- Object
- Process
- String

No matching classes.

# Puma::CommonLogger

Rack::CommonLogger forwards every request to the given `app`, and logs a line in the Apache common log format to the `logger`.

If `logger` is nil, CommonLogger will fall back `rack.errors`, which is an instance of Rack::NullLogger.

`logger` can be any class, including the standard library Logger, and is expected to have either `write` or +<<+ method, which accepts the CommonLogger::FORMAT. According to the SPEC, the error stream must also respond to `puts` (which takes a single argument that responds to `to_s`), and `flush` (which is called without arguments in order to make the error appear for sure)

### Constants

CACHE_CONTROL
CONTENT_LENGTH
CONTENT_TYPE
FORMAT

  Common Log Format: httpd.apache.org/docs/1.3/logs.html#common

      lilith.local - - [07/Aug/2006 23:58:02 -0400] "GET / HTTP/1.1" 500 -

      %{%s - %s [%s] "%s %s%s %s" %d %s\n} %

GET
HEAD
HIJACK_FORMAT
PATH_INFO
QUERY_STRING
REQUEST_METHOD
SCRIPT_NAME

### Public Class Methods

new(app, logger=nil) click to toggle source

    # File lib/puma/commonlogger.rb, line 24
    def initialize(app, logger=nil)
      @app = app
      @logger = logger
    end

### Public Instance Methods

call(env) click to toggle source

    # File lib/puma/commonlogger.rb, line 29
    def call(env)
      began_at = Time.now
      status, header, body = @app.call(env)
      header = Util::HeaderHash.new(header)

      # If we've been hijacked, then output a special line
      if env['rack.hijack_io']
        log_hijacking(env, 'HIJACK', header, began_at)
      else
        ary = env['rack.after_reply']
        ary << lambda { log(env, status, header, began_at) }
      end

      [status, header, body]
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.