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)