class Logger::LogDevice

Public Instance Methods

add_logger(name, logger = nil) click to toggle source

Add a logger

# File lib/razing_ruby/logger.rb, line 33
def add_logger(name, logger = nil)
  name, logger = __prep_logger__(name, logger)
  return false if logger.logdev == self
  loggers[name] = logger
end
del_logger(name) click to toggle source

Remove a logger

# File lib/razing_ruby/logger.rb, line 40
def del_logger(name)
  loggers[name].close
  loggers.delete(name)
end
get_logger(name) click to toggle source

Get a logger

# File lib/razing_ruby/logger.rb, line 46
def get_logger(name)
  loggers[name]
end
loggers() click to toggle source
# File lib/razing_ruby/logger.rb, line 50
def loggers
  @loggers ||= {}
end
raze_write(*a, &b) click to toggle source

Write a log

# File lib/razing_ruby/logger.rb, line 25
def raze_write(*a, &b)
  results = [ruby_write(*a, &b)]
  loggers.values.map(&:logdev).reduce(results) do |out, logger|
    logger.respond_to?(:write) ? out << logger.write(*a, &b) : out
  end
end
Also aliased as: write
ruby_write(*a, &b)

Swap the methods with the raze ones

Alias for: write
write(*a, &b)
Also aliased as: ruby_write
Alias for: raze_write

Private Instance Methods

__prep_logger__(name, logger = nil) click to toggle source

Get the logger for the consumption

# File lib/razing_ruby/logger.rb, line 61
def __prep_logger__(name, logger = nil)
  if name.is_a?(String) && ! logger.nil?
    [name, logger.class <= Logger ? logger : Logger.new(logger)]
  elsif name.class <= Logger && logger.nil?
    [name, name]
  else
    [name, Logger.new(name)]
  end
end