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