class SemanticLogger::Log
def extract_arguments(payload, message = nil)
def extract_arguments(payload, message = nil) raise(ArgumentError, "payload must be a Hash") unless payload.is_a?(Hash) message = nil if message == "" if payload.key?(:payload) return message ? payload.merge(message: message) : payload end new_payload = {} args = {} payload.each_pair do |key, value| # Supplied message takes precedence if (key == :message) && !message.nil? new_payload[key] = value next end NON_PAYLOAD_KEYS.include?(key) ? args[key] = value : new_payload[key] = value end args[:payload] = new_payload unless new_payload.empty? args[:message] = message if message args end