method
broadcast
v4.2.7 -
Show latest stable
- Class:
ActiveSupport::Logger
broadcast(logger)public
Broadcasts logs to multiple loggers.
# File activesupport/lib/active_support/logger.rb, line 12
def self.broadcast(logger) # :nodoc:
Module.new do
define_method(:add) do |*args, &block|
logger.add(*args, &block)
super(*args, &block)
end
define_method(:<<) do |x|
logger << x
super(x)
end
define_method(:close) do
logger.close
super()
end
define_method(:progname=) do |name|
logger.progname = name
super(name)
end
define_method(:formatter=) do |formatter|
logger.formatter = formatter
super(formatter)
end
define_method(:level=) do |level|
logger.level = level
super(level)
end
define_method(:local_level=) do |level|
logger.local_level = level if logger.respond_to?(:local_level=)
super(level) if respond_to?(:local_level=)
end
define_method(:silence) do |level = Logger::ERROR, &block|
if logger.respond_to?(:silence) && logger.method(:silence).owner != ::Kernel
logger.silence(level) do
if respond_to?(:silence) && method(:silence).owner != ::Kernel
super(level, &block)
else
block.call(self)
end
end
else
if respond_to?(:silence) && method(:silence).owner != ::Kernel
super(level, &block)
else
block.call(self)
end
end
end
end
end