class Announcer::Plugins::LoggingPlugin

Public Instance Methods

logger() click to toggle source
# File lib/announcer/plugins/logging_plugin.rb, line 8
def logger
  @_logger ||= _load_logger
end

Private Instance Methods

_load_level() click to toggle source
# File lib/announcer/plugins/logging_plugin.rb, line 35
def _load_level
  case config.level
  when :info, nil
    Logger::INFO
  when :warn
    Logger::WARN
  when :error
    Logger::ERROR
  when :fatal
    Logger::FATAL
  else
    raise Errors::PluginError, "Invalid plugins.logging.level: #{config.level.inspect}"
  end
end
_load_logger() click to toggle source
# File lib/announcer/plugins/logging_plugin.rb, line 25
def _load_logger
  if config.logger?
    config.logger
  else
    Logger.new(STDOUT).tap { |logger|
      logger.level = _load_level
    }
  end
end
_run(subject, object, &block) click to toggle source
# File lib/announcer/plugins/logging_plugin.rb, line 50
def _run(subject, object, &block)
  logger.debug("#{subject}: #{object}")

  if config.log_exceptions?
    begin
      block.call
    rescue Exception => e
      logger.fatal("Exception raised when #{subject.downcase} #{object}: #{e.inspect}")
      raise
    end
  else
    block.call
  end

  logger.debug("Finished #{subject}: #{object}")
end