def call!(env)
      env['rack.logger'] = @logger

      status, headers, body = nil, nil, nil
      benchmark = Benchmark.measure do
        status, headers, body = @app.call(env)
      end
      log_error(env['deas.error'])
      env['deas.time_taken'] = RoundedTime.new(benchmark.real)

      [status, headers, body]
    end
def call!(env)
      env['rack.logger'] = @logger

      status, headers, body = nil, nil, nil
      benchmark = Benchmark.measure do
        status, headers, body = @app.call(env)
      end
      log_error(env['deas.error'])
      env['deas.time_taken'] = RoundedTime.new(benchmark.real)

      [status, headers, body]
    end
The real Rack call interface.
 This is the common behavior for both the verbose and summary logging
 middlewares. It sets rack's logger, times the response and returns it as is.