Sha256: a1ef3ef16ca369619a3e8002c8913cada8c569172ecfc85aba848b9964befacd
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
require 'time' module TaggedLogging class Formatter < ::Logger::Formatter FORMAT = "[%s] - %4s - %s - %s\n" def call(severity, time, progname, msg) str = case msg when ::String msg when ::Exception "#{ msg.message } (#{ msg.class })\n | " << (msg.backtrace || []).join("\n | ") else msg.inspect end FORMAT % [format_datetime(time), severity, tags_text, msg] end def push_tags(*tags) tags.flatten.reject(&:blank?).tap do |new_tags| current_tags.concat new_tags end end def pop_tags(size = 1) current_tags.pop size end def clear_tags! current_tags.clear end def current_tags Thread.current[:__tagged_logging_current_tags] ||= [] end def tags_text tags = current_tags if tags.any? tags.collect { |tag| "[#{tag}] " }.join.strip end end private def format_datetime(time) if @datetime_format.nil? time.iso8601 else time.strftime(@datetime_format) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tagged_logging-0.1.0 | lib/tagged_logging/formatter.rb |