From ebae0a0fb453b93251e8224fd10139c078ddf538 Mon Sep 17 00:00:00 2001 From: Thom May Date: Thu, 15 Feb 2018 14:07:35 +0000 Subject: [PATCH] Ensure we only do a metadata write if required Signed-off-by: Thom May --- lib/mixlib/log.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/mixlib/log.rb b/lib/mixlib/log.rb index 2161568..0934f29 100644 --- a/lib/mixlib/log.rb +++ b/lib/mixlib/log.rb @@ -133,9 +133,11 @@ def <<(msg) def add(severity, message = nil, progname = nil, data: {}, &block) message, progname, data = yield if block_given? - data = metadata.merge(data) if data.kind_of?(Hash) + data = metadata.merge(data) if metadata.kind_of?(Hash) && data.kind_of?(Hash) loggers.each do |l| - if l.respond_to?(:add_data) + # if we don't have any metadata, let's not do the potentially expensive + # merging and managing that this call requires + if l.respond_to?(:add_data) && !data.nil? && !data.empty? l.add_data(severity, message, progname, data: data) else l.add(severity, message, progname)