Class: Macmillan::Utils::Logger::Factory

Inherits:
Object
  • Object
show all
Defined in:
lib/macmillan/utils/logger/factory.rb

Overview

A factory class for building logger objects

Usage:

require 'macmillan/utils/logger'

Macmillan::Utils::Logger::Factory.build_logger(type, options)

Class Method Summary collapse

Class Method Details

.build_logger(type = :logger, opts = {}) ⇒ Logger

Builds a logger object

Opts varies depending on the type of logger object you are creating:

opts for :syslog
  :tag      => [String] the name of the syslog tag to use
  :facility => [Integer] the 'LOG_LOCALx' syslog facility to use

opts for :logger
  :target   => [String, Object] the target for the Logger object

opts for :null
  none

Parameters:

  • type (Symbol) (defaults to: :logger)

    the logger type, ‘:logger`, `:syslog` or `:null`

  • opts (Hash) (defaults to: {})

    options to pass to your logger object

Returns:

  • (Logger)

    the configured logger object



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/macmillan/utils/logger/factory.rb', line 36

def self.build_logger(type = :logger, opts = {})
  logger = case type
           when :syslog then build_syslog_logger(opts)
           when :null   then build_normal_logger(target: '/dev/null')
           else
             build_normal_logger(opts)
           end

  logger.formatter = ::Macmillan::Utils::Logger::Formatter.new
  logger.level     = ::Logger::INFO

  logger
end