Sha256: b168c9b3fc8e88d0e3eb08a27ffd36ff75d4311aea8e43337f8db842a717dd5d

Contents?: true

Size: 1.34 KB

Versions: 21

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

require "active_support/concern"
require "logger"

module ActiveSupport
  module LoggerThreadSafeLevel # :nodoc:
    extend ActiveSupport::Concern

    Logger::Severity.constants.each do |severity|
      class_eval(<<-EOT, __FILE__, __LINE__ + 1)
        def #{severity.downcase}?                # def debug?
          Logger::#{severity} >= level           #   DEBUG >= level
        end                                      # end
      EOT
    end

    def local_level
      IsolatedExecutionState[local_level_key]
    end

    def local_level=(level)
      case level
      when Integer
      when Symbol
        level = Logger::Severity.const_get(level.to_s.upcase)
      when nil
      else
        raise ArgumentError, "Invalid log level: #{level.inspect}"
      end
      if level.nil?
        IsolatedExecutionState.delete(local_level_key)
      else
        IsolatedExecutionState[local_level_key] = level
      end
    end

    def level
      local_level || super
    end

    # Change the thread-local level for the duration of the given block.
    def log_at(level)
      old_local_level, self.local_level = local_level, level
      yield
    ensure
      self.local_level = old_local_level
    end

    private
      def local_level_key
        @local_level_key ||= :"logger_thread_safe_level_#{object_id}"
      end
  end
end

Version data entries

21 entries across 21 versions & 6 rubygems

Version Path
minato_ruby_api_client-0.2.2 vendor/bundle/ruby/3.2.0/gems/activesupport-7.1.3.4/lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.5.1 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.5 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.4.2 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.4.1 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.4 lib/active_support/logger_thread_safe_level.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/activesupport-7.1.3.4/lib/active_support/logger_thread_safe_level.rb
katalyst-govuk-formbuilder-1.9.2 vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.3.4/lib/active_support/logger_thread_safe_level.rb
tinymce-rails-7.1.2 vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.3.4/lib/active_support/logger_thread_safe_level.rb
activesupport-7.2.0.beta2 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.3.4 lib/active_support/logger_thread_safe_level.rb
activesupport-7.2.0.beta1 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.3.2 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.3.1 lib/active_support/logger_thread_safe_level.rb
mlh-rubocop-config-1.0.3 vendor/bundle/ruby/3.2.0/gems/activesupport-7.1.3/lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.3 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.2 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.1 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.0 lib/active_support/logger_thread_safe_level.rb
activesupport-7.1.0.rc2 lib/active_support/logger_thread_safe_level.rb