123456789_123456789_123456789_123456789_123456789_

Class: Puma::TCPLogger

Relationships & Source Files
Inherits: Object
Defined in: lib/puma/tcp_logger.rb

Constant Summary

Class Method Summary

Instance Method Summary

Constructor Details

.new(logger, app, quiet = false) ⇒ TCPLogger

[ GitHub ]

  
# File 'lib/puma/tcp_logger.rb', line 5

def initialize(logger, app, quiet=false)
  @logger = logger
  @app = app
  @quiet = quiet
end

Instance Method Details

#call(env, socket)

[ GitHub ]

  
# File 'lib/puma/tcp_logger.rb', line 26

def call(env, socket)
  who = env[Const::REMOTE_ADDR]
  log who, "connected" unless @quiet

  env['log'] = lambda { |str| log(who, str) }

  begin
    @app.call env, socket
  rescue Object => e
    log who, "exception: #{e.message} (#{e.class})"
  else
    log who, "disconnected" unless @quiet
  end
end

#log(who, str)

[ GitHub ]

  
# File 'lib/puma/tcp_logger.rb', line 13

def log(who, str)
  now = Time.now.strftime("%d/%b/%Y %H:%M:%S")

  log_str = "#{now} - #{who} - #{str}"

  case @logger
  when IO
    @logger.puts log_str
  when Events
    @logger.log log_str
  end
end