class Restool::RequestLogger
Public Class Methods
new(host, opts)
click to toggle source
# File lib/restool/logger/request_logger.rb, line 4 def initialize(host, opts) @host = host @opts = opts end
Public Instance Methods
log(request, &http_request)
click to toggle source
# File lib/restool/logger/request_logger.rb, line 9 def log(request, &http_request) log_request(request) if log? response = http_request.call log_response(response) if log? response rescue StandardError => e log_error(e) if log? raise end
log?()
click to toggle source
# File lib/restool/logger/request_logger.rb, line 25 def log? if @opts[:log] != nil @opts[:log] else @opts[:logger] != nil end end
logger()
click to toggle source
# File lib/restool/logger/request_logger.rb, line 21 def logger @opts[:logger] end
Private Instance Methods
format_hash(headers)
click to toggle source
# File lib/restool/logger/request_logger.rb, line 51 def format_hash(headers) headers.map { |key, value| "#{key}: #{value}" }.join(", ") end
log_error(error)
click to toggle source
# File lib/restool/logger/request_logger.rb, line 47 def log_error(error) logger.error { "Restool error: #{error}" } end
log_request(request)
click to toggle source
# File lib/restool/logger/request_logger.rb, line 35 def log_request(request) logger.info { "Restool Service #{@host}" } logger.info { "#{request.method.upcase} #{request.path}" } logger.info { "Headers: { #{format_hash(request.headers)} }" } logger.debug { "Params: { #{format_hash(request.params)} }" } end
log_response(response)
click to toggle source
# File lib/restool/logger/request_logger.rb, line 42 def log_response(response) logger.info { "Restool response (status #{response.code}):" } logger.debug { response.body } end