lib/hanami/web/rack_logger.rb in hanami-2.0.0.beta4 vs lib/hanami/web/rack_logger.rb in hanami-2.0.0.rc1

- old
+ new

@@ -1,10 +1,14 @@ # frozen_string_literal: true module Hanami + # @api private module Web # Rack logger for Hanami apps + # + # @api private + # @since 2.0.0 class RackLogger REQUEST_METHOD = "REQUEST_METHOD" private_constant :REQUEST_METHOD HTTP_X_FORWARDED_FOR = "HTTP_X_FORWARDED_FOR" @@ -23,41 +27,47 @@ private_constant :ROUTER_PARAMS CONTENT_LENGTH = "Content-Length" private_constant :CONTENT_LENGTH + # @api private + # @since 2.0.0 def initialize(logger) @logger = logger end + # @api private + # @since 2.0.0 def attach(rack_monitor) rack_monitor.on :stop do |event| log_request event[:env], event[:status], event[:time] end rack_monitor.on :error do |event| log_exception event[:exception] end end + # @api private + # @since 2.0.0 def log_request(env, status, elapsed) data = { verb: env[REQUEST_METHOD], status: status, elapsed: "#{elapsed}ms", ip: env[HTTP_X_FORWARDED_FOR] || env[REMOTE_ADDR], path: env[SCRIPT_NAME] + env[PATH_INFO].to_s, length: extract_content_length(env), - params: env[ROUTER_PARAMS], - time: Time.now, + params: env[ROUTER_PARAMS] } logger.info(data) end + # @api private + # @since 2.0.0 def log_exception(exception) - logger.error exception.message - logger.error exception.backtrace.join("\n") + logger.error(exception) end private attr_reader :logger