Class: Alexandria::Logger

Inherits:
Logger
  • Object
show all
Defined in:
lib/alexandria/logging.rb

Overview

A Logger subclass which accepts a source for log messages in order to improve legibility of the logs. The source should usually be self, whether that be a Class, Module or Object. A LoggerWrapper can be used to simplify this procedure.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.category(source) ⇒ Object



58
59
60
61
62
63
64
65
66
# File 'lib/alexandria/logging.rb', line 58

def self.category(source)
  if source.instance_of? Class
    "[Cls  #{source.name}]"
  elsif source.instance_of? Module
    "[Mod #{source.name}]"
  else
    "<Obj #{source.class.name}>"
  end
end

Instance Method Details

#add(severity, message = nil, source = nil, progname = nil, &block) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/alexandria/logging.rb', line 30

def add(severity, message = nil, source = nil, progname = nil, &block)
  return super(severity, message, progname, &block) if source.nil?
  category = self.class.category(source)
  return super(severity, progname, category) unless block_given?
  category = "#{category} #{progname}" if progname
  super(severity, message, category, &block)
end

#debug(source = nil, progname = nil, &block) ⇒ Object



38
39
40
# File 'lib/alexandria/logging.rb', line 38

def debug(source = nil, progname = nil, &block)
  add(DEBUG, nil, source, progname, &block)
end

#error(source = nil, progname = nil, &block) ⇒ Object



50
51
52
# File 'lib/alexandria/logging.rb', line 50

def error(source = nil, progname = nil, &block)
  add(ERROR, nil, source, progname, &block)
end

#fatal(source = nil, progname = nil, &block) ⇒ Object



54
55
56
# File 'lib/alexandria/logging.rb', line 54

def fatal(source = nil, progname = nil, &block)
  add(FATAL, nil, source, progname, &block)
end

#info(source = nil, progname = nil, &block) ⇒ Object



42
43
44
# File 'lib/alexandria/logging.rb', line 42

def info(source = nil, progname = nil, &block)
  add(INFO, nil, source, progname, &block)
end

#warn(source = nil, progname = nil, &block) ⇒ Object



46
47
48
# File 'lib/alexandria/logging.rb', line 46

def warn(source = nil, progname = nil, &block)
  add(WARN, nil, source, progname, &block)
end