Sha256: 41384be7ab6c300c6a03b77d7049816655fc066279269ae9ed959a0b7fc88341
Contents?: true
Size: 972 Bytes
Versions: 8
Compression:
Stored size: 972 Bytes
Contents
require 'active_support/log_subscriber' class StructuredEventLogger::HumanReadableLogger CLEAR = "\e[0m" BOLD = "\e[1m" # Colors MAGENTA = "\e[35m" CYAN = "\e[36m" WHITE = "\e[37m" attr_accessor :logger, :colorize, :log_level def initialize(logger, colorize = ActiveSupport::LogSubscriber.colorize_logging, log_level = nil) @logger, @colorize, @log_level = logger, colorize, log_level end def call(scope, event, hash, decorated_hash) logger.add(log_level, format_hash(scope, event, hash)) end private def format_hash(scope, event, hash, separator = ', ') @odd = !@odd message = hash.map {|k, v| "#{k}=#{escape(v)}"}.join(separator) if @colorize " #{@odd ? CYAN : MAGENTA}#{BOLD}[#{scope}] #{event}: #{WHITE}#{message}#{CLEAR}" else " [#{scope}] #{event}: #{message}" end end def escape(value) output = value.to_s output =~ /[\s"\\]/ ? output.inspect : output end end
Version data entries
8 entries across 8 versions & 1 rubygems