lib/sc4ry/logger.rb in sc4ry-0.1.8 vs lib/sc4ry/logger.rb in sc4ry-0.2.0
- old
+ new
@@ -1,30 +1,66 @@
-
+# Sc4ry module
+# @note namespace
module Sc4ry
- class Logger
+
+ # Sc4ry loggers Factory/provider
+ # @note must be accessed by [Sc4ry::Circuits.loggers]
+ class Loggers
@@loggers = {:stdout => ::Logger.new(STDOUT)}
@@current = :stdout
- def Logger.list_avaible
- return @@loggers
+ # give the list of available loggers (initially internal Sc4ry logger )
+ # @return [Array] of [symbol] the list of defined loggers
+ # @note default :stdout => ::Logger(STDOUT) from Ruby Stdlib
+ # @example usage
+ # include Sc4ry
+ # Circuits.loggers.list_available.each {|logger| puts logger }
+ def Loggers.list_available
+ return @@loggers.keys
end
- def Logger.current
+ # return the current logger name (initially :stdtout )
+ # @return [symbol] the name of the logger
+ # @example usage
+ # include Sc4ry
+ # puts Circuits.loggers.current
+ def Loggers.current
return @@current
end
- def Logger.get
+ # return the current logger Object (initially internal Sc4ry Stdlib Logger on STDOUT )
+ # @return [symbol] the name of the logger
+ # @example usage
+ # include Sc4ry
+ # Circuits.loggers.get :stdout
+ def Loggers.get
return @@loggers[@@current]
end
- def Logger.current=(sym)
+ # Set the current logger
+ # @param [Symbol] sym the name of the logger
+ # @return [symbol] the name of the logger updated
+ # @example usage
+ # include Sc4ry
+ # Circuits.loggers.current = :newlogger
+ def Loggers.current=(sym)
raise "Logger not define : #{sym}" unless @@loggers.keys.include? sym
@@current = sym
+ return @@current
end
- def Logger.register(options = {})
- @@loggers[options[:name]] = options[:instance]
+ # register un new logger
+ # @param [Symbol] name the name of the new logger
+ # @param [Object] instance the new logger object
+ # raise Sc4ry::Exceptions::Sc4ryGenericError if name is not a Symbol
+ # @example usage
+ # include Sc4ry
+ # Circuits.loggers.register name: :newlogger, instance: Logger::new('/path/to/my.log')
+ def Loggers.register(name: , instance: )
+ raise Sc4ry::Exceptions::Sc4ryGenericError, "name: keyword must be a Symbol" unless name.class == Symbol
+ @@loggers[name] = instance
+ return name
end
end
end