class Sapience::Extensions::Sinatra::Middleware::Logging
Public Class Methods
new(app, options = {})
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 16 def initialize(app, options = {}) @app = app @logger = options[:logger] end
Public Instance Methods
call(env)
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 21 def call(env) call!(env) end
Protected Instance Methods
after()
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 54 def after stop_time @logger.info(parameters) end
after_exception(exc)
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 59 def after_exception(exc) # rubocop:disable Lint/UnusedMethodArgument @status = 500 after end
after_failure(error)
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 64 def after_failure(error) @status = error[:status] after end
before()
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 49 def before reset_db_runtime start_time end
call!(env)
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 27 def call!(env) @env = env before error = catch(:error) do begin @app_response = @app.call(@env) rescue StandardError => e after_exception(e) raise e end nil end if error after_failure(error) throw(:error, error) else @status, = *@app_response after end @app_response end
parameters()
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 69 def parameters # rubocop:disable AbcSize { method: request.request_method, request_path: @env["REQUEST_URI"] || @env["PATH_INFO"], status: @status, route: @env["sinatra.route"].to_s, host: request.host, ip: (request.env["HTTP_X_FORWARDED_FOR"] || request.env["REMOTE_ADDR"]), ua: request.env["HTTP_USER_AGENT"], tags: Sapience.tags, params: request.params, runtimes: { total: total_runtime, view: view_runtime, db: db_runtime, }, } end
Private Instance Methods
db_runtime()
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 102 def db_runtime Sinatra::Timings.db_runtime.round(3) end
request()
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 90 def request @request ||= ::Rack::Request.new(@env) end
reset_db_runtime()
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 106 def reset_db_runtime Sinatra::Timings.reset_db_runtime end
start_time()
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 110 def start_time @start_time ||= Time.now end
stop_time()
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 114 def stop_time @stop_time ||= Time.now end
total_runtime()
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 94 def total_runtime ((stop_time - start_time) * 1000).round(3) end
view_runtime()
click to toggle source
# File lib/sapience/extensions/sinatra/middleware/logging.rb, line 98 def view_runtime total_runtime - db_runtime end