Sha256: d8ffb5b933a2085336d01b3441a730c38dce1bf4360bb17acd9a8adb309e0f78

Contents?: true

Size: 902 Bytes

Versions: 1

Compression:

Stored size: 902 Bytes

Contents

require "logger"
require "singleton"

# Logger interface class to access logger though symbolic names
module BmcDaemonLib
  class LoggerPool
    include Singleton
    LOG_ROTATION            = "daily"

    def get pipe = nil
      # If not provided, use :default
      pipe = :default if pipe.to_s.empty?

      # Instantiate a logger or return the existing one
      @loggers ||= {}
      @loggers[pipe] ||= create(pipe)
    end

    def create pipe
      # Compute logfile or STDERR, and declare what we're doing
      filename = Conf.logfile(pipe)

      # Create the logger and return it
      logger = Logger.new(filename, LOG_ROTATION)   #, 10, 1024000)
      logger.progname = pipe.to_s.downcase
      logger.formatter = LoggerFormatter

      # Finally return this logger
      logger

    rescue Errno::EACCES
      $stderr.puts "LoggerPool: create [#{pipe}]: access error"
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bmc-daemon-lib-0.3.18 lib/bmc-daemon-lib/logger_pool.rb