aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/logger_thread_safe_level.rb
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2018-10-03 16:45:53 -0400
committerGitHub <noreply@github.com>2018-10-03 16:45:53 -0400
commitebf98df9fb705738ece08e3182d41e6f604be491 (patch)
treeb9bf196968abd893ebba3a01eb55a406a32a8d88 /activesupport/lib/active_support/logger_thread_safe_level.rb
parentf0e9a8987329bb848b712044942160a3a3468343 (diff)
parent05ad44eb89047ac13e31149fa6cbc1459c5545a9 (diff)
downloadrails-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/active_support/logger_thread_safe_level.rb')
-rw-r--r--activesupport/lib/active_support/logger_thread_safe_level.rb29
1 files changed, 25 insertions, 4 deletions
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