class Krane::FormattedLogger
Public Class Methods
build(namespace = nil, context = nil, stream = $stderr, verbose_prefix: false)
click to toggle source
# File lib/krane/formatted_logger.rb, line 14 def self.build(namespace = nil, context = nil, stream = $stderr, verbose_prefix: false) l = new(stream) l.level = level_from_env middle = if verbose_prefix if namespace.blank? raise ArgumentError, 'Must pass a namespace if logging verbosely' end if context.blank? raise ArgumentError, 'Must pass a context if logging verbosely' end "[#{context}][#{namespace}]" end l.formatter = proc do |severity, datetime, _progname, msg| colorized_line = ColorizedString.new("[#{severity}][#{datetime}]#{middle}\t#{msg}\n") case severity when "FATAL" ColorizedString.new("[#{severity}][#{datetime}]#{middle}\t").red + "#{msg}\n" when "ERROR" colorized_line.red when "WARN" colorized_line.yellow else colorized_line end end l end
indent_four(str)
click to toggle source
# File lib/krane/formatted_logger.rb, line 10 def self.indent_four(str) " " + str.to_s.gsub("\n", "\n ") end
Private Class Methods
level_from_env()
click to toggle source
# File lib/krane/formatted_logger.rb, line 46 def self.level_from_env return ::Logger::DEBUG if ENV["DEBUG"] if ENV["LEVEL"] ::Logger.const_get(ENV["LEVEL"].upcase) else ::Logger::INFO end end