class G5::Logger::Log

Constants

Levels

Public Class Methods

level(level) click to toggle source
# File lib/g5/logger/log.rb, line 19
def level(level)
  Levels.include?(level) ? level : :info
end
log(attributes) click to toggle source
# File lib/g5/logger/log.rb, line 13
def log(attributes)
  default_merge = {source_app_name: Config[:source_app_name]}.merge(Config[:default_log_hash]).merge(attributes)
  log_level     = level(default_merge.delete(:level))
  Config[:logger].send(log_level, log_entry(default_merge))
end
log_entry(hash) click to toggle source
# File lib/g5/logger/log.rb, line 23
def log_entry(hash)
  scrubbed = redact hash.clone
  if  G5::Logger::KEY_VALUE_FORMAT== G5::Logger::Config[:format]
    scrubbed.keys.collect { |key| "#{key}=\"#{hash[key]}\"" }.join(", ")
  else
    scrubbed.to_json
  end
end
log_json_req_resp(request, response, options={}) click to toggle source
# File lib/g5/logger/log.rb, line 32
def log_json_req_resp(request, response, options={})
  options = options.merge(
      status:   response.try(:code),
      request:  request,
      response: response.try(:body))

  send(log_method(response.code), options)
end
log_method(code) click to toggle source
# File lib/g5/logger/log.rb, line 41
def log_method(code)
  error = code > 299 rescue false
  error ? :error : :info
end
redact(hash) click to toggle source
# File lib/g5/logger/log.rb, line 46
def redact(hash)
  hash.keys.each do |key|
    redact(hash[key]) if hash[key].kind_of?(Hash)
    redact_array(hash[key]) if hash[key].kind_of?(Array)
    hash[key] = Config[:redact_value] if redactable?(key)
  end
  hash
end
redact_array(array) click to toggle source
# File lib/g5/logger/log.rb, line 66
def redact_array(array)
  array.each do |array_val|
    redact array_val if array_val.kind_of?(Hash)
  end
end
redactable?(value) click to toggle source
# File lib/g5/logger/log.rb, line 55
def redactable?(value)
  return false if value.blank? || ![String, Symbol].include?(value.class)
  !!Config[:redact_keys].detect { |rk|
    if rk.class == String
      rk == value
    else
      value.match(rk)
    end
  }
end