class Vx::Lib::Logger::BaseLogger
Public Instance Methods
formatter()
click to toggle source
# File lib/vx/lib/logger/base_logger.rb, line 5 def formatter @formatter ||= ->(_,_,_,m) { m } end
formatter=(val)
click to toggle source
# File lib/vx/lib/logger/base_logger.rb, line 9 def formatter=(val) ; end
handle(message, options = {}) { |options| ... }
click to toggle source
# File lib/vx/lib/logger/base_logger.rb, line 37 def handle(message, options = {}) be = Time.now.to_f re = nil ex = nil begin re = yield options rescue Exception => e ex = e end en = Time.now.to_f options.merge!(duration: (en - be)) if ex error message, options.merge!(exception: ex) if ex raise ex else info message, options end re end
level()
click to toggle source
# File lib/vx/lib/logger/base_logger.rb, line 19 def level @logger.level end
level=(new_val)
click to toggle source
# File lib/vx/lib/logger/base_logger.rb, line 23 def level=(new_val) @logger.level = new_val end
progname()
click to toggle source
# File lib/vx/lib/logger/base_logger.rb, line 11 def progname Lib::Logger.progname end
progname=(val)
click to toggle source
# File lib/vx/lib/logger/base_logger.rb, line 15 def progname=(val) # disable end
Private Instance Methods
format_message(level, message, payload)
click to toggle source
# File lib/vx/lib/logger/base_logger.rb, line 108 def format_message(level, message, payload) raise NotImplementedError end
process_message(level, message = nil, fields = {}) { || ... }
click to toggle source
# File lib/vx/lib/logger/base_logger.rb, line 63 def process_message(level, message = nil, fields = {}) if block_given? message = yield end if fields[:exception] && fields[:exception].is_a?(Exception) ex = fields.delete(:exception) fields.merge!( exception: [ex.class.to_s, ex.message].join(" - "), backtrace: (ex.backtrace || []).map(&:to_s).join("\n"), ) end payload = { thread_id: ::Thread.current.object_id, } if fields && fields != {} duration = fields.delete(:duration) if duration && duration.respond_to?(:to_f) payload.merge!(duration: duration.to_f) end payload.merge!( fields: sanitize_hash(fields) ) end @logger.public_send level, format_message(level, message.to_s, payload) end
sanitize_hash(payload)
click to toggle source
# File lib/vx/lib/logger/base_logger.rb, line 95 def sanitize_hash(payload) payload = {} unless payload.is_a?(Hash) payload.keys.each do |key_name| value = payload[key_name] unless value.is_a?(String) payload[key_name] = value.to_s end end payload end