class Fluentdly::Rack::Middleware

Attributes

app[R]
logger[R]
parameters[R]

Public Class Methods

new(app, config = Fluentdly.configuration) click to toggle source
# File lib/fluentdly/rack/middleware.rb, line 8
def initialize app, config = Fluentdly.configuration
  @app        = app
  @logger     = config.task_logger
  @parameters = config.request_parameters
end

Public Instance Methods

call(env) click to toggle source
# File lib/fluentdly/rack/middleware.rb, line 14
def call env
  time, result = Timer.measure do
    app.call(env)
  end

  logger.info(params(env, time, result))
  result
end

Private Instance Methods

custom(env) click to toggle source
# File lib/fluentdly/rack/middleware.rb, line 45
def custom env
  parameters.each_with_object({}) do |(k,v), result|
    result[k] = env[v]
  end
end
format(env, time, result) click to toggle source
# File lib/fluentdly/rack/middleware.rb, line 32
def format env, time, result
  if logger.debug?
    Debug.call(env, time, result)
  else
    Standard.call(env, time, result)
  end
end
get_status(result) click to toggle source
# File lib/fluentdly/rack/middleware.rb, line 40
def get_status result
  status, _headers, _body = result
  status.to_s
end
params(env, time, result) click to toggle source
# File lib/fluentdly/rack/middleware.rb, line 25
def params env, time, result
  message = format(env, time, result)
  status  = get_status(result)

  custom(env).merge :status => status, :message => message, :time => time
end