lib/pallets/logger.rb in pallets-0.8.0 vs lib/pallets/logger.rb in pallets-0.9.0

- old
+ new

@@ -3,15 +3,23 @@ module Pallets class Logger < ::Logger # Overwrite severity methods to add metadata capabilities %i[debug info warn error fatal unknown].each do |severity| - define_method severity do |message, metadata = {}| - return super(message) if metadata.empty? + define_method severity do |message| + metadata = Thread.current[:pallets_log_metadata] + return super(message) if metadata.nil? formatted_metadata = ' ' + metadata.map { |k, v| "#{k}=#{v}" }.join(' ') super(formatted_metadata) { message } end + end + + def with_metadata(hash) + Thread.current[:pallets_log_metadata] = hash + yield + ensure + Thread.current[:pallets_log_metadata] = nil end module Formatters class Pretty < ::Logger::Formatter def call(severity, time, metadata, message)