class SweetLogger::Logstash
Constants
- MUTEX
Public Class Methods
silence(routes)
click to toggle source
# File lib/sweet_logger/logstash.rb, line 11 def self.silence(routes) @silencer_re = /#{ routes.map { |e| Regexp.escape(e) }.join("|") }/ end
silencer_re()
click to toggle source
# File lib/sweet_logger/logstash.rb, line 15 def self.silencer_re @silencer_re end
Public Instance Methods
flush(entries)
click to toggle source
# File lib/sweet_logger/logstash.rb, line 55 def flush(entries) entries.each do |logger, args, block| logger.add_before_sweet_logger *args, &block end end
shall_be_silenced?(path)
click to toggle source
# File lib/sweet_logger/logstash.rb, line 61 def shall_be_silenced?(path) path =~ self.class.silencer_re end
wrap(path) { || ... }
click to toggle source
# File lib/sweet_logger/logstash.rb, line 19 def wrap(path, &block) silenced = shall_be_silenced?(path) we_started_this = ! Thread.main[:sweet_logger_stash] MUTEX.synchronize do if we_started_this && ! silenced Thread.main[:sweet_logger_stash] = [] else Thread.current[:sweet_logger_stash] = [] end end yield ensure MUTEX.synchronize do if silenced || ! Thread.current[:sweet_logger_stash] Thread.current[:sweet_logger_stash] = [] end if Thread.main[:sweet_logger_stash] if we_started_this flush Thread.main[:sweet_logger_stash] Thread.main[:sweet_logger_stash] = nil else Thread.main[:sweet_logger_stash] += Thread.current[:sweet_logger_stash] end elsif flush Thread.current[:sweet_logger_stash] end Thread.current[:sweet_logger_stash] = nil end end