class PuppetForgeServer::Logger

Public Class Methods

get(type = :server) click to toggle source
# File lib/puppet_forge_server/logger.rb, line 66
def get(type = :server)
  set unless @static_loggers[type]
  @static_loggers[type]
end
new(destinations = [@@DEFAULT_DESTINATION]) click to toggle source
# File lib/puppet_forge_server/logger.rb, line 27
def initialize(destinations = [@@DEFAULT_DESTINATION])
  @loggers = [destinations].flatten.map do |dest|
    logger = ::Logger.new(dest)
    logger.formatter = proc do |severity, datetime, progname, msg|
      datetime = datetime.strftime @@DEFAULT_DATETIME_FORMAT
      "[#{datetime}] #{severity}  #{msg}\n"
    end
    logger.level = @@DEFAULT_LOG_LEVEL
    logger
  end
end
set(loggers= {}) click to toggle source
# File lib/puppet_forge_server/logger.rb, line 71
def set(loggers= {})
  loggers = {:server => [@@DEFAULT_DESTINATION], :access => [@@DEFAULT_DESTINATION]}.merge(loggers)
  loggers.each do |type, destinations|
    @static_loggers[type] = PuppetForgeServer::Logger.new(destinations)
  end
end

Public Instance Methods

flush() click to toggle source
# File lib/puppet_forge_server/logger.rb, line 61
def flush
  # ignore
end
method_missing(method_name, *args, &block) click to toggle source
# File lib/puppet_forge_server/logger.rb, line 39
def method_missing (method_name, *args, &block)
  method_name = case method_name
                  when :write, :puts
                    '<<'
                  when :flush
                    ''
                  else
                    method_name
                end
  if args.size > 0
    # setters
    @loggers.each { |logger| logger.send(method_name, args.first) }
  else
    # getters
    @loggers.collect { |logger| logger.send(method_name) }
  end
end
respond_to?(method_name, include_private = false) click to toggle source
# File lib/puppet_forge_server/logger.rb, line 57
def respond_to?(method_name, include_private = false)
  @loggers.each { |logger| return false unless (logger.respond_to?(method_name) || %w(write puts flush).include?(method_name.to_s)) }
end