lib/ougai/logger.rb in ougai-1.6.4 vs lib/ougai/logger.rb in ougai-1.6.5

- old
+ new

@@ -100,48 +100,56 @@ else create_item_with_3args(msg, ex, data) end end - def create_item_with_1arg(msg) + def create_item_with_1arg(arg) item = {} - if msg.is_a?(Exception) - item[:msg] = msg.to_s - set_exc(item, msg) - elsif msg.is_a?(Hash) - item[:msg] = @default_message unless msg.key?(:msg) - item.merge!(msg) + if arg.is_a?(Exception) + item[:msg] = arg.to_s + set_exc(item, arg) + elsif arg.is_a?(String) + item[:msg] = arg else - item[:msg] = msg.to_s + item.merge!(as_hash(arg)) + item[:msg] ||= @default_message end item end - def create_item_with_2args(msg, ex) + def create_item_with_2args(arg1, arg2) item = {} - if ex.is_a?(Exception) - item[:msg] = msg.to_s - set_exc(item, ex) - elsif ex.is_a?(Hash) - item.merge!(ex) - if msg.is_a?(Exception) - set_exc(item, msg) - else - item[:msg] = msg.to_s - end + if arg2.is_a?(Exception) # msg, ex + item[:msg] = arg1.to_s + set_exc(item, arg2) + elsif arg1.is_a?(Exception) # ex, data + set_exc(item, arg1) + item.merge!(as_hash(arg2)) + item[:msg] ||= arg1.to_s + else # msg, data + item[:msg] = arg1.to_s + item.merge!(as_hash(arg2)) end item end def create_item_with_3args(msg, ex, data) - item = {} - set_exc(item, ex) if ex.is_a?(Exception) - item.merge!(data) if data.is_a?(Hash) - item[:msg] = msg.to_s - item + {}.tap do |item| + set_exc(item, ex) if ex.is_a?(Exception) + item.merge!(as_hash(data)) + item[:msg] = msg.to_s + end end def set_exc(item, exc) item[@exc_key] = @formatter.serialize_exc(exc) + end + + def as_hash(data) + if data.is_a?(Hash) || data.respond_to?(:to_hash) + data + else + { data: data } + end end end end