Sha256: a47f9fdf6dfe6d06370d18a34a9b14fa726d6cc8b81a5384d6e7d0c4a52fd7e6
Contents?: true
Size: 1.19 KB
Versions: 4
Compression:
Stored size: 1.19 KB
Contents
require_relative 'log_repository' module RTALogger # propagate log records to multiple log repositories class LogPropagator def initialize @semaphore = Mutex.new @log_records = [] @log_repositories = [] end def add_log(log_record) @semaphore.synchronize { @log_records.push(log_record.dup) } end def add_log_repository(log_repository) return unless log_repository.is_a? RTALogger::LogRepository @log_repositories.push(log_repository) unless @log_repositories.include?(log_repository) end def load_log_repository(config_json) type = config_json['Type'] return if type.to_s.strip.empty? enable = config_json['Enable'].nil? ? true : config_json['Enable'] return unless enable log_repository = ::RTALogger::LogFactory.create_repository(type, config_json) add_log_repository(log_repository) end def drop_all_repositories @semaphore.synchronize { @log_repositories.clear } end def propagate @semaphore.synchronize do @log_repositories.each do |log_repository| log_repository.add_log_records(@log_records) end @log_records.clear end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
RTALogger-0.1.4 | lib/log_propagator.rb |
RTALogger-0.1.3 | lib/log_propagator.rb |
RTALogger-0.1.2 | lib/log_propagator.rb |
RTALogger-0.1.1 | lib/log_propagator.rb |