Namespace

Class

Methods

Included Modules

Class Public methods

logger_outputs_to?(logger, *sources)

Returns true if the logger destination matches one of the sources

logger = Logger.new(STDOUT)
ActiveSupport::Logger.logger_outputs_to?(logger, STDOUT)
# => true

logger = Logger.new('/var/log/rails.log')
ActiveSupport::Logger.logger_outputs_to?(logger, '/var/log/rails.log')
# => true
📝 Source code
# File activesupport/lib/active_support/logger.rb, line 20
    def self.logger_outputs_to?(logger, *sources)
      loggers = if logger.is_a?(BroadcastLogger)
        logger.broadcasts
      else
        [logger]
      end

      logdevs = loggers.map { |logger| logger.instance_variable_get(:@logdev) }
      logger_sources = logdevs.filter_map { |logdev| logdev.try(:filename) || logdev.try(:dev) }

      normalize_sources(sources).intersect?(normalize_sources(logger_sources))
    end
🔎 See on GitHub

new(*args, **kwargs)

📝 Source code
# File activesupport/lib/active_support/logger.rb, line 33
    def initialize(*args, **kwargs)
      super
      @formatter ||= SimpleFormatter.new
    end
🔎 See on GitHub

normalize_sources(sources)

📝 Source code
# File activesupport/lib/active_support/logger.rb, line 47
      def self.normalize_sources(sources)
        sources.map do |source|
          source = source.path if source.respond_to?(:path)
          source = File.realpath(source) if source.is_a?(String) && File.exist?(source)
          source
        end
      end
🔎 See on GitHub