Class: Sc4ry::Loggers

Inherits:
Object
  • Object
show all
Defined in:
lib/sc4ry/logger.rb

Overview

Note:

must be accessed by [Sc4ry::Circuits.loggers]

Sc4ry loggers Factory/provider

Constant Summary collapse

@@loggers =
{ stdout: ::Logger.new($stdout) }
@@current =
:stdout

Class Method Summary collapse

Class Method Details

.currentsymbol

return the current logger name (initially :stdtout )

Examples:

usage

include Sc4ry
puts Circuits.loggers.current

Returns:

  • (symbol)

    the name of the logger



27
28
29
# File 'lib/sc4ry/logger.rb', line 27

def self.current
  @@current
end

.current=(sym) ⇒ symbol

Set the current logger

Examples:

usage

include Sc4ry
Circuits.loggers.current = :newlogger

Parameters:

  • sym (Symbol)

    the name of the logger

Returns:

  • (symbol)

    the name of the logger updated



46
47
48
49
50
51
# File 'lib/sc4ry/logger.rb', line 46

def self.current=(sym)
  raise "Logger not define : #{sym}" unless @@loggers.keys.include? sym

  @@current = sym
  @@current
end

.getsymbol

return the current logger Object (initially internal Sc4ry Stdlib Logger on STDOUT )

Examples:

usage

include Sc4ry
Circuits.loggers.get :stdout

Returns:

  • (symbol)

    the name of the logger



36
37
38
# File 'lib/sc4ry/logger.rb', line 36

def self.get
  @@loggers[@@current]
end

.list_availableArray

Note:

default :stdout => ::Logger($stdout) from Ruby Stdlib

give the list of available loggers (initially internal Sc4ry logger )

Examples:

usage

include Sc4ry
Circuits.loggers.list_available.each {|logger| puts logger }

Returns:

  • (Array)

    of [symbol] the list of defined loggers



18
19
20
# File 'lib/sc4ry/logger.rb', line 18

def self.list_available
  @@loggers.keys
end

.register(name:, instance:) ⇒ Object

register un new logger raise Sc4ry::Exceptions::Sc4ryGenericError if name is not a Symbol

Examples:

usage

include Sc4ry
Circuits.loggers.register name: :newlogger, instance: Logger::new('/path/to/my.log')

Parameters:

  • name (Symbol)

    the name of the new logger

  • instance (Object)

    the new logger object

Raises:



60
61
62
63
64
65
# File 'lib/sc4ry/logger.rb', line 60

def self.register(name:, instance:)
  raise Sc4ry::Exceptions::Sc4ryGenericError, 'name: keyword must be a Symbol' unless name.instance_of?(Symbol)

  @@loggers[name] = instance
  name
end