Sha256: 24f24c8d11e59dbfb93c69ca9e3a91d81f0edf06e1b2870527281f493371f517

Contents?: true

Size: 1.29 KB

Versions: 48

Compression:

Stored size: 1.29 KB

Contents

module Inferno
  module Utils
    # @private
    module Middleware
      class RequestLogger
        def log_response(response, start_time, end_time, exception = nil)
          elapsed = end_time - start_time
          status, _response_headers, body = response if response
          status, = response if exception

          logger.info("#{status} in #{elapsed.in_milliseconds} ms")
          return unless body.present?

          body = body.is_a?(Array) ? body.join : body

          if body.length > 100
            logger.info("#{body[0..100]}...")
          else
            logger.info(body)
          end
        end

        def log_request(env)
          method = env['REQUEST_METHOD']
          scheme = env['rack.url_scheme']
          host = env['HTTP_HOST']
          path = env['REQUEST_URI']
          query = env['rack.request.query_string']
          body = env['rack.input']
          body = body.instance_of?(Puma::NullIO) ? nil : body.string
          query_string = query.blank? ? '' : "?#{query}"

          logger.info("#{method} #{scheme}://#{host}#{path}#{query_string}")

          return unless body.present?

          if body.length > 100
            logger.info("#{body[0..100]}...")
          else
            logger.info(body)
          end
        end
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 3 rubygems

Version Path
us_core_test_kit-0.9.3 lib/us_core_test_kit/request_logger.rb
us_core_test_kit-0.9.2 lib/us_core_test_kit/request_logger.rb
us_core_test_kit-0.9.1 lib/us_core_test_kit/request_logger.rb
davinci_plan_net_test_kit-0.10.1 lib/davinci_plan_net_test_kit/request_logger.rb
us_core_test_kit-0.9.0 lib/us_core_test_kit/request_logger.rb
us_core_test_kit-0.8.2 lib/us_core_test_kit/request_logger.rb
us_core_test_kit-0.8.1 lib/us_core_test_kit/request_logger.rb
us_core_test_kit-0.8.0 lib/us_core_test_kit/request_logger.rb
us_core_test_kit-0.7.2 lib/us_core_test_kit/request_logger.rb
davinci_plan_net_test_kit-0.10.0 lib/davinci_plan_net_test_kit/request_logger.rb
ipa_test_kit-0.4.1 lib/ipa_test_kit/request_logger.rb
ipa_test_kit-0.4.0 lib/ipa_test_kit/request_logger.rb
us_core_test_kit-0.7.1 lib/us_core_test_kit/request_logger.rb
us_core_test_kit-0.7.0 lib/us_core_test_kit/request_logger.rb
us_core_test_kit-0.6.5 lib/us_core_test_kit/request_logger.rb
davinci_plan_net_test_kit-0.9.1 lib/davinci_plan_net_test_kit/request_logger.rb
us_core_test_kit-0.6.4 lib/us_core_test_kit/request_logger.rb
davinci_plan_net_test_kit-0.9.0 lib/davinci_plan_net_test_kit/request_logger.rb
us_core_test_kit-0.6.3 lib/us_core_test_kit/request_logger.rb
ipa_test_kit-0.3.4 lib/ipa_test_kit/request_logger.rb