Class: Fancybox2::Logger::Multi
- Inherits:
-
Object
- Object
- Fancybox2::Logger::Multi
- Defined in:
- lib/fancybox2/logger/multi.rb
Overview
Log on multiple loggers at the same time
Usage example:
file_logger = Logger.new(File.open(“log/debug.log”, “a”)) stdout_logger = Logger.new(STDOUT) Create a logger that logs both to STDOUT and log_file at the same time with ‘info’ loglevel multi_logger = Fancybox2::Logger::Multi.new(file_logger, stdout_logger, level: :info))
Instance Attribute Summary collapse
-
#escape_data ⇒ Object
Returns the value of attribute escape_data.
-
#level ⇒ Object
Returns the value of attribute level.
-
#loggers ⇒ Object
Returns the value of attribute loggers.
-
#progname ⇒ Object
Returns the value of attribute progname.
Instance Method Summary collapse
- #add(level, *args) ⇒ Object (also: #log)
- #add_logger(logger) ⇒ Object
- #close ⇒ Object
- #default_log_level ⇒ Object
-
#initialize(*args) ⇒ Multi
constructor
logger_1, logger_2, …
Constructor Details
#initialize(*args) ⇒ Multi
logger_1, logger_2, … , level: nil, loggers: nil, escape_data: true)
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/fancybox2/logger/multi.rb', line 19 def initialize(*args) = args..deep_symbolize_keys loggers = args if !loggers.is_a?(Array) || loggers.size.zero? raise ArgumentError.new("provide at least one logger instance") end @level = normalize_log_level([:level]) @escape_data = [:escape_data] || false @progname = [:progname] self.loggers = loggers # Set properties # Override Loggers levels only if explicitly required self.level = @level if [:level] # Do not use @level because it has already been processed # Override Logger's Formatter only if explicitly required self.escape_data = @escape_data if @escape_data self.progname = @progname if @progname define_methods end |
Instance Attribute Details
#escape_data ⇒ Object
Returns the value of attribute escape_data.
16 17 18 |
# File 'lib/fancybox2/logger/multi.rb', line 16 def escape_data @escape_data end |
#level ⇒ Object
Returns the value of attribute level.
16 17 18 |
# File 'lib/fancybox2/logger/multi.rb', line 16 def level @level end |
#loggers ⇒ Object
Returns the value of attribute loggers.
16 17 18 |
# File 'lib/fancybox2/logger/multi.rb', line 16 def loggers @loggers end |
#progname ⇒ Object
Returns the value of attribute progname.
16 17 18 |
# File 'lib/fancybox2/logger/multi.rb', line 16 def progname @progname end |
Instance Method Details
#add(level, *args) ⇒ Object Also known as: log
41 42 43 |
# File 'lib/fancybox2/logger/multi.rb', line 41 def add(level, *args) @loggers.each { |logger| logger.add(level, *args) } end |
#add_logger(logger) ⇒ Object
46 47 48 |
# File 'lib/fancybox2/logger/multi.rb', line 46 def add_logger(logger) @loggers << logger end |
#close ⇒ Object
50 51 52 |
# File 'lib/fancybox2/logger/multi.rb', line 50 def close @loggers.map(&:close) end |
#default_log_level ⇒ Object
54 55 56 |
# File 'lib/fancybox2/logger/multi.rb', line 54 def default_log_level 'info' end |