diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2016-02-24 10:25:03 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2016-02-24 10:25:03 -0300 |
commit | e56e2459cb5ec8d4752e051ead76e8ffb98f8b4b (patch) | |
tree | e45a947693ebef0194a6fb728dbd59a59ebc1fe9 /activesupport/lib/active_support/logger_silence.rb | |
parent | 34ad8240f29c51285b2de3346ca555498c4dbb7f (diff) | |
parent | 2518bda97cbbcb33dc9a92e70d5b01c09e64d12d (diff) | |
download | rails-e56e2459cb5ec8d4752e051ead76e8ffb98f8b4b.tar.gz rails-e56e2459cb5ec8d4752e051ead76e8ffb98f8b4b.tar.bz2 rails-e56e2459cb5ec8d4752e051ead76e8ffb98f8b4b.zip |
Merge pull request #23616 from piotrj/issue_23609_logger_broadcast_silencing
Fix logger silencing for broadcasted loggers
Diffstat (limited to 'activesupport/lib/active_support/logger_silence.rb')
-rw-r--r-- | activesupport/lib/active_support/logger_silence.rb | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/activesupport/lib/active_support/logger_silence.rb b/activesupport/lib/active_support/logger_silence.rb index 125d81d973..3eb8098c77 100644 --- a/activesupport/lib/active_support/logger_silence.rb +++ b/activesupport/lib/active_support/logger_silence.rb @@ -7,39 +7,22 @@ module LoggerSilence included do cattr_accessor :silencer - attr_reader :local_levels self.silencer = true end - def after_initialize - @local_levels = Concurrent::Map.new(:initial_capacity => 2) - end - - def local_log_id - Thread.current.__id__ - end - - def level - local_levels[local_log_id] || super - end - # Silences the logger for the duration of the block. def silence(temporary_level = Logger::ERROR) if silencer begin - old_local_level = local_levels[local_log_id] - local_levels[local_log_id] = temporary_level + old_local_level = local_level + self.local_level = temporary_level yield self ensure - if old_local_level - local_levels[local_log_id] = old_local_level - else - local_levels.delete(local_log_id) - end + self.local_level = old_local_level end else yield self end end -end
\ No newline at end of file +end |