diff options
Diffstat (limited to 'lib/mixlib/log.rb')
-rw-r--r-- | lib/mixlib/log.rb | 6 |
1 files 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 @@ module Mixlib 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) |