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