Sha256: 296711c7c8cc22be9ca9183a65ea63bd6f3795a8e2dd587cb3e0b29bb7f5153b
Contents?: true
Size: 1.21 KB
Versions: 2
Compression:
Stored size: 1.21 KB
Contents
# frozen_string_literal: true class Rage::Application def initialize(router) @router = router end def call(env) init_logger handler = @router.lookup(env) response = if handler params = Rage::ParamsParser.prepare(env, handler[:params]) handler[:handler].call(env, params) else [404, {}, ["Not Found"]] end rescue Exception => e exception_str = "#{e.class} (#{e.message}):\n#{e.backtrace.join("\n")}" Rage.logger.error(exception_str) response = [500, {}, [exception_str]] ensure finalize_logger(env, response, params) end private DEFAULT_LOG_CONTEXT = {}.freeze private_constant :DEFAULT_LOG_CONTEXT def init_logger Thread.current[:rage_logger] = { tags: [Iodine::Rack::Utils.gen_request_tag], context: DEFAULT_LOG_CONTEXT, request_start: Process.clock_gettime(Process::CLOCK_MONOTONIC) } end def finalize_logger(env, response, params) logger = Thread.current[:rage_logger] duration = ( (Process.clock_gettime(Process::CLOCK_MONOTONIC) - logger[:request_start]) * 1000 ).round(2) logger[:final] = { env:, params:, response:, duration: } Rage.logger.info("") logger[:final] = nil end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rage-rb-0.6.0 | lib/rage/application.rb |
rage-rb-0.5.2 | lib/rage/application.rb |