module LogicalModel::SafeLog::ClassMethods

Attributes

log_path[RW]

Public Instance Methods

log_failed(response) click to toggle source
# File lib/logical_model/safe_log.rb, line 34
def log_failed(response)
  begin
    error_message = ActiveSupport::JSON.decode(response.body)["message"]
  rescue => e
    error_message = "error"
  end
  msg = "LogicalModel Log: #{response.code} #{mask_api_key(response.effective_url)} in #{response.time}s FAILED: #{error_message}"
  self.logger.warn(msg)
  self.logger.debug("LogicalModel Log RESPONSE: #{response.body}")
end
log_ok(response) click to toggle source
# File lib/logical_model/safe_log.rb, line 29
def log_ok(response)
  self.logger.info("LogicalModel Log: #{response.code} #{mask_api_key(response.effective_url)} in #{response.time}s")
  self.logger.debug("LogicalModel Log RESPONSE: #{response.body}")
end
logger() click to toggle source
# File lib/logical_model/safe_log.rb, line 45
def logger
  unless @logger
    @logger = Logger.new(self.log_path || "log/logical_model.log")
    if defined?(Rails)
      @logger.level = Rails.logger.level
    else
      @logger.level = Logger::DEBUG
    end
  end
  @logger
end
mask_api_key(str) click to toggle source

Filters api_key @return [String]

# File lib/logical_model/safe_log.rb, line 59
def mask_api_key(str)
  if use_api_key && str
    str = str.gsub(api_key,'[SECRET]')
  end
  str
end