Class: QueuedLogger
Instance Method Summary collapse
- #dequeue(level = nil, message = nil) ⇒ Object
- #enqueue(level, message) ⇒ Object
-
#initialize(*args) ⇒ QueuedLogger
constructor
A new instance of QueuedLogger.
- #process_queue ⇒ Object
- #queued? ⇒ Boolean
Constructor Details
#initialize(*args) ⇒ QueuedLogger
Returns a new instance of QueuedLogger.
4 5 6 7 8 |
# File 'lib/queued_logger.rb', line 4 def initialize(*args) super(*args) @queue = [] @emitted = false end |
Instance Method Details
#dequeue(level = nil, message = nil) ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/queued_logger.rb', line 27 def dequeue(level=nil, =nil) if queued? @queue.clear elsif level and send("%s_without_queue"%level, ) if @emitted end @emitted = false end |
#enqueue(level, message) ⇒ Object
22 23 24 25 |
# File 'lib/queued_logger.rb', line 22 def enqueue(level, ) @queue << [level, ] @emitted = false end |
#process_queue ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/queued_logger.rb', line 10 def process_queue if queued? while true entry = @queue.shift or break severity, = entry raw_method = "#{severity}_without_queue" severity_i = self.class.send(:const_get, severity.to_s.upcase) send(raw_method, ) end end end |
#queued? ⇒ Boolean
36 37 38 |
# File 'lib/queued_logger.rb', line 36 def queued? ! @queue.empty? end |