class Majic::Logging::Logger
Constants
- TimeFormat
Attributes
name[W]
Public Class Methods
name_width()
click to toggle source
# File library/majic/logging.rb, line 56 def name_width; Logging.name_cutoff or @@names.map(&:length).max end
new(object)
click to toggle source
# File library/majic/logging.rb, line 59 def initialize object @object = object @@names << name end
Public Instance Methods
log(level, *messages)
click to toggle source
# File library/majic/logging.rb, line 64 def log level, *messages return if not should_message? level Logging.mutex.synchronize do messages.each do |message| Logging.stream.puts format(level, message).force_encoding 'utf-8' end end end
name()
click to toggle source
# File library/majic/logging.rb, line 89 def name @name or default_name end
name_self(object, name)
click to toggle source
# File library/majic/logging.rb, line 80 def name_self object, name # FIXME: This appears not to be called when attaching to a metaclass. # An investigation is in order. Logging.included object.metaclass object.extend Logging object.log.name = name end
Protected Instance Methods
default_name()
click to toggle source
# File library/majic/logging.rb, line 101 def default_name cutoff = Logging.name_cutoff default_name = if Module === @object name = @object.to_s name.sub! /^.+?::/, '' while name.include? '::' and name.length > cutoff name else @object.to_s end default_name.truncate! cutoff, :middle if default_name.length > cutoff default_name end
format(level, message)
click to toggle source
# File library/majic/logging.rb, line 117 def format level, message name = self.name.ljust(Logger.name_width) ^ :bold [timestamp, name, level_string(level), " #{message}"].join " " end
level_string(level)
click to toggle source
# File library/majic/logging.rb, line 130 def level_string level max_width = Levels.map(&:length).max level.to_s.capitalize.rjust(max_width) ^ LevelColors[level] end
should_message?(level)
click to toggle source
# File library/majic/logging.rb, line 122 def should_message? level Levels.index(level) >= Logging.level_index end
timestamp()
click to toggle source
# File library/majic/logging.rb, line 126 def timestamp Time.now.strftime TimeFormat end