diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2018-10-03 16:45:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-03 16:45:53 -0400 |
commit | ebf98df9fb705738ece08e3182d41e6f604be491 (patch) | |
tree | b9bf196968abd893ebba3a01eb55a406a32a8d88 /activesupport/lib | |
parent | f0e9a8987329bb848b712044942160a3a3468343 (diff) | |
parent | 05ad44eb89047ac13e31149fa6cbc1459c5545a9 (diff) | |
download | rails-ebf98df9fb705738ece08e3182d41e6f604be491.tar.gz rails-ebf98df9fb705738ece08e3182d41e6f604be491.tar.bz2 rails-ebf98df9fb705738ece08e3182d41e6f604be491.zip |
Merge pull request #34055 from Edouard-chin/ec-logger-fix
Fix the LoggerSilence to work as described:
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/logger.rb | 15 | ||||
-rw-r--r-- | activesupport/lib/active_support/logger_silence.rb | 2 | ||||
-rw-r--r-- | activesupport/lib/active_support/logger_thread_safe_level.rb | 29 |
3 files changed, 27 insertions, 19 deletions
diff --git a/activesupport/lib/active_support/logger.rb b/activesupport/lib/active_support/logger.rb index 8152a182b4..b8555c887b 100644 --- a/activesupport/lib/active_support/logger.rb +++ b/activesupport/lib/active_support/logger.rb @@ -6,7 +6,6 @@ require "logger" module ActiveSupport class Logger < ::Logger - include ActiveSupport::LoggerThreadSafeLevel include LoggerSilence # Returns true if the logger destination matches one of the sources @@ -81,20 +80,6 @@ module ActiveSupport def initialize(*args) super @formatter = SimpleFormatter.new - after_initialize if respond_to? :after_initialize - end - - def add(severity, message = nil, progname = nil, &block) - return true if @logdev.nil? || (severity || UNKNOWN) < level - super - end - - 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 # Simple formatter which only displays the message. diff --git a/activesupport/lib/active_support/logger_silence.rb b/activesupport/lib/active_support/logger_silence.rb index 2f62cc13b9..b2444c1e34 100644 --- a/activesupport/lib/active_support/logger_silence.rb +++ b/activesupport/lib/active_support/logger_silence.rb @@ -2,6 +2,7 @@ require "active_support/concern" require "active_support/core_ext/module/attribute_accessors" +require "active_support/logger_thread_safe_level" module LoggerSilence extend ActiveSupport::Concern @@ -22,6 +23,7 @@ module ActiveSupport included do cattr_accessor :silencer, default: true + include ActiveSupport::LoggerThreadSafeLevel end # Silences the logger for the duration of the block. diff --git a/activesupport/lib/active_support/logger_thread_safe_level.rb b/activesupport/lib/active_support/logger_thread_safe_level.rb index 22ab4cc28c..f16c90cfc6 100644 --- a/activesupport/lib/active_support/logger_thread_safe_level.rb +++ b/activesupport/lib/active_support/logger_thread_safe_level.rb @@ -1,14 +1,30 @@ # frozen_string_literal: true require "active_support/concern" +require "active_support/core_ext/module/attribute_accessors" require "concurrent" module ActiveSupport module LoggerThreadSafeLevel # :nodoc: extend ActiveSupport::Concern + included do + cattr_accessor :local_levels, default: Concurrent::Map.new(initial_capacity: 2), instance_accessor: false + end + + 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 after_initialize - @local_levels = Concurrent::Map.new(initial_capacity: 2) + ActiveSupport::Deprecation.warn( + "Logger don't need to call #after_initialize directly anymore. It will be deprecated without replacement in " \ + "Rails 6.1." + ) end def local_log_id @@ -16,19 +32,24 @@ module ActiveSupport end def local_level - @local_levels[local_log_id] + self.class.local_levels[local_log_id] end def local_level=(level) if level - @local_levels[local_log_id] = level + self.class.local_levels[local_log_id] = level else - @local_levels.delete(local_log_id) + self.class.local_levels.delete(local_log_id) end end def level local_level || super end + + def add(severity, message = nil, progname = nil, &block) # :nodoc: + return true if @logdev.nil? || (severity || UNKNOWN) < level + super + end end end |