class Loom::Logger
Constants
- COLOR_MAP
Public Class Methods
configure(config)
click to toggle source
# File lib/loom/logger.rb, line 14 def configure(config) device = configure_device config.log_device logger = ::Logger.new device class << logger include LoggerDebugLevels end raise "missing logger debug methods" unless logger.respond_to? :debug1 logger.level = case config.log_level when Symbol, String ::Logger.const_get config.log_level.to_s.upcase when Integer # Negative numbers can be used for detailed debug levels config.log_level end colorize = config.log_colorize && device.tty? logger.formatter = default_formatter colorize if config.log_colorize && !device.tty? logger.warn "disabled log colorization for non-tty" end logger end
Private Class Methods
configure_device(device_value)
click to toggle source
# File lib/loom/logger.rb, line 42 def configure_device(device_value) case device_value when :stderr, 'stderr' STDERR when :stdout, 'stdout' STDOUT when :devnull, 'devnull' File.new '/dev/null', 'a' when Integer IO.new device_value, 'a' when String File.new device_value, 'a' when StringIO device_value else raise ConfigError, "log_device => #{device_value}" end end
default_formatter(colorize)
click to toggle source
# File lib/loom/logger.rb, line 61 def default_formatter(colorize) lambda do |severity, datetime, progname, msg| s_key = severity[0].downcase.to_sym if colorize && COLOR_MAP[s_key] severity = Styleizer.apply severity, COLOR_MAP[s_key] progname = Styleizer.apply progname, :bold, :dark_gray end if progname "[%s] (%s): %s\n" % [severity, progname, msg] else "[%s] %s\n" % [severity, msg] end end end