Sha256: 6de9bf5a53cc1ed5e3e558b6b553352fa6f51fec5ecdcf4e3ed4db722cede6ba

Contents?: true

Size: 815 Bytes

Versions: 3

Compression:

Stored size: 815 Bytes

Contents

module Pakyow
  class Logger
    def initialize(app)
      @app = app
    end
    
    def call(env)
      began_at = Time.now
      
      Log.enter "Processing #{env['PATH_INFO']} (#{env['REMOTE_ADDR']} at #{began_at}) [#{env['REQUEST_METHOD']}]"
      
      result = nil
      
      if error = catch(:error) { 
                  result = @app.call(env)
                  nil 
                }
        Log.enter "[500] #{error}\n"
        Log.enter error.backtrace.join("\n") + "\n\n"
        
        result = Pakyow.app.response.finish
      end
      
      ended_at = Time.now.to_f
      difference = ((ended_at - began_at.to_f) * 1000).to_f

      Log.enter "Completed in #{difference}ms | #{Pakyow.app.response.status} | [#{Pakyow.app.request.url}]"
      Log.enter
      
      result
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pakyow-core-0.7.2 pakyow-core/lib/core/logger.rb
pakyow-core-0.7.1 pakyow-core/lib/core/logger.rb
pakyow-core-0.7.0 pakyow-core/lib/core/logger.rb