module Chef::EventLoggers
def self.available_event_loggers
def self.available_event_loggers event_loggers_by_name.select do |key, val| val.available? end.keys end
def self.by_name(name)
def self.by_name(name) event_loggers_by_name[name] end
def self.event_loggers_by_name
def self.event_loggers_by_name @event_loggers_by_name ||= {} end
def self.new(name)
def self.new(name) event_logger_class = by_name(name.to_s) raise UnknownEventLogger, "No event logger found for #{name} (available: #{available_event_loggers.join(", ")})" unless event_logger_class raise UnavailableEventLogger unless available_event_loggers.include? name.to_s event_logger_class.new end
def self.register(name, logger)
def self.register(name, logger) event_loggers_by_name[name.to_s] = logger end