class Nexmo::Logger

Public Class Methods

new(logger) click to toggle source
# File lib/nexmo/logger.rb, line 11
def initialize(logger)
  @logger = logger || ::Logger.new(nil)
end

Public Instance Methods

log_request_info(request) click to toggle source
# File lib/nexmo/logger.rb, line 22
def log_request_info(request)
  @logger = T.let(@logger, T.nilable(T.any(::Logger, Nexmo::Logger)))

  T.must(@logger).info do
    format('Nexmo API request', {
      method: request.method,
      path: request.uri.path
    })
  end
end
log_response_info(response, host) click to toggle source
# File lib/nexmo/logger.rb, line 37
def log_response_info(response, host)
  T.must(@logger).info do
    format('Nexmo API response', {
      host: host,
      status: response.code,
      type: response.content_type,
      length: response.content_length,
      trace_id: response['x-nexmo-trace-id']
    })
  end
end

Private Instance Methods

format(message, hash) click to toggle source
# File lib/nexmo/logger.rb, line 52
def format(message, hash)
  return message if hash.nil?

  fields = hash.map { |key, value| "#{key}=#{value}" if value }.compact
  fields.unshift(message)
  fields.join(' ')
end