Class: ActiveSupport::Logger
- Includes:
- LoggerSilence
- Defined in:
- activesupport/lib/active_support/logger.rb
Defined Under Namespace
Classes: SimpleFormatter
Class Method Summary collapse
-
.broadcast(logger) ⇒ Object
Broadcasts logs to multiple loggers.
-
.logger_outputs_to?(logger, *sources) ⇒ Boolean
Returns true if the logger destination matches one of the sources.
Instance Method Summary collapse
-
#initialize(*args, **kwargs) ⇒ Logger
constructor
A new instance of Logger.
Methods included from LoggerSilence
Methods included from Concern
#append_features, #class_methods, extended, #included, #prepend_features, #prepended
Constructor Details
#initialize(*args, **kwargs) ⇒ Logger
Returns a new instance of Logger.
80 81 82 83 |
# File 'activesupport/lib/active_support/logger.rb', line 80 def initialize(*args, **kwargs) super @formatter ||= SimpleFormatter.new end |
Class Method Details
.broadcast(logger) ⇒ Object
Broadcasts logs to multiple loggers.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'activesupport/lib/active_support/logger.rb', line 23 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.silence(level) do if defined?(super) super(level, &block) else block.call(self) end end else if defined?(super) super(level, &block) else block.call(self) end end end end end |
.logger_outputs_to?(logger, *sources) ⇒ Boolean
Returns true if the logger destination matches one of the sources
logger = Logger.new(STDOUT)
ActiveSupport::Logger.logger_outputs_to?(logger, STDOUT)
# => true
16 17 18 19 20 |
# File 'activesupport/lib/active_support/logger.rb', line 16 def self.logger_outputs_to?(logger, *sources) logdev = logger.instance_variable_get(:@logdev) logger_source = logdev.dev if logdev.respond_to?(:dev) sources.any? { |source| source == logger_source } end |