Class: Mnemonic::LoggerProxy
- Inherits:
-
Object
- Object
- Mnemonic::LoggerProxy
show all
- Extended by:
- Forwardable
- Defined in:
- lib/mnemonic/logger_proxy.rb
Instance Method Summary
collapse
Constructor Details
#initialize(logger, mnemonic = Mnemonic.new(&proc)) ⇒ LoggerProxy
Returns a new instance of LoggerProxy.
9
10
11
12
13
14
15
|
# File 'lib/mnemonic/logger_proxy.rb', line 9
def initialize(logger, mnemonic = Mnemonic.new(&proc))
super()
@monitor = Monitor.new
@logger = logger
@mnemonic = mnemonic
enable_mnemonic!
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
79
80
81
82
83
84
85
|
# File 'lib/mnemonic/logger_proxy.rb', line 79
def method_missing(method_name, *args, &block)
if @logger.respond_to? method_name
@logger.send(method_name, *args, &block)
else
super
end
end
|
Instance Method Details
#<<(msg) ⇒ Object
66
67
68
69
70
|
# File 'lib/mnemonic/logger_proxy.rb', line 66
def <<(msg)
@monitor.synchronize do
@logger << msg
end
end
|
#add(severity, message = nil, progname = nil, &block) ⇒ Object
Also known as:
log
57
58
59
60
61
62
63
|
# File 'lib/mnemonic/logger_proxy.rb', line 57
def add(severity, message = nil, progname = nil, &block)
@monitor.synchronize do
@logger.add(severity, message, progname, &block).tap do |result|
@mnemonic.trigger! if result && @sink && severity >= @logger.level
end
end
end
|
#close ⇒ Object
72
73
74
75
76
77
|
# File 'lib/mnemonic/logger_proxy.rb', line 72
def close
@monitor.synchronize do
disable_mnemonic!
@logger.close
end
end
|
#disable_mnemonic! ⇒ Object
23
24
25
26
27
28
|
# File 'lib/mnemonic/logger_proxy.rb', line 23
def disable_mnemonic!
@monitor.synchronize do
@mnemonic.detach(@sink)
@sink = nil
end
end
|
#enable_mnemonic! ⇒ Object
17
18
19
20
21
|
# File 'lib/mnemonic/logger_proxy.rb', line 17
def enable_mnemonic!
@monitor.synchronize do
@sink = @mnemonic.attach_pretty(@logger)
end
end
|
#mnemonic_enabled? ⇒ Boolean
30
31
32
|
# File 'lib/mnemonic/logger_proxy.rb', line 30
def mnemonic_enabled?
@monitor.synchronize { !!@sink }
end
|
#respond_to?(method_name, include_private = false) ⇒ Boolean
87
88
89
|
# File 'lib/mnemonic/logger_proxy.rb', line 87
def respond_to?(method_name, include_private = false)
@logger.respond_to?(method_name) || super
end
|