Class: Synapse::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/synapse/logger.rb

Constant Summary collapse

UNKNOWN =
5
FATAL =
4
ERROR =
3
WARN =
2
INFO =
1
DEBUG =
0

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dest) ⇒ Logger

Returns a new instance of Logger.



24
25
26
27
# File 'lib/synapse/logger.rb', line 24

def initialize dest
  self.class.deferred_rebind self
  @messages = []
end

Instance Attribute Details

#levelObject

Returns the value of attribute level.



22
23
24
# File 'lib/synapse/logger.rb', line 22

def level
  @level
end

#prognameObject

Returns the value of attribute progname.



22
23
24
# File 'lib/synapse/logger.rb', line 22

def progname
  @progname
end

Class Method Details

.deferred_rebind(logger) ⇒ Object



9
10
11
12
# File 'lib/synapse/logger.rb', line 9

def deferred_rebind logger
  @cache ||= []
  @cache << ->(target) { logger.rebind_to target }
end

.rebind(logger) ⇒ Object



4
5
6
7
8
# File 'lib/synapse/logger.rb', line 4

def rebind logger
  @cache.each do |cached|
    cached.call logger
  end
end

Instance Method Details

#debug(message) ⇒ Object



32
33
34
# File 'lib/synapse/logger.rb', line 32

def debug message
  _log :warn, message
end

#error(message) ⇒ Object



41
42
43
# File 'lib/synapse/logger.rb', line 41

def error message
  _log :error, message
end

#fatal(message) ⇒ Object



44
45
46
# File 'lib/synapse/logger.rb', line 44

def fatal message
  _log :fatal, message
end

#info(message) ⇒ Object



35
36
37
# File 'lib/synapse/logger.rb', line 35

def info message
  _log :warn, message
end

#rebind_to(logger) ⇒ Object



28
29
30
31
# File 'lib/synapse/logger.rb', line 28

def rebind_to logger
  @logger = logger
  replay
end

#replayObject



50
51
52
53
54
55
56
# File 'lib/synapse/logger.rb', line 50

def replay
  return unless @messages.is_a? Array
  @messages.each do |message|
    @logger.send(message.first,"#{@progname}: #{message.last}")
  end
  @messages=nil
end

#unknown(message) ⇒ Object



47
48
49
# File 'lib/synapse/logger.rb', line 47

def unknown message
  _log :unknown, message
end

#warn(message) ⇒ Object



38
39
40
# File 'lib/synapse/logger.rb', line 38

def warn message
  _log :warn, message
end