From 564e427c05e0d3d24ce8c3ab17ea0969011e056a Mon Sep 17 00:00:00 2001 From: Hartley McGuire Date: Sat, 15 Jun 2024 14:50:52 -0400 Subject: [PATCH] Remove obsolete Logger severity predicates The Logger severity predicates have existed since the [introduction of Logger][1]. However, these methods only looked at the `level` instance variable, so they did not work with the [thread safe implementation][2] of temporary log levels in Rails. Since then, the Logger severity predicates were [updated][3] to use the `level` method instead of the instance variable, making Rails' severity predicate overrides obsolete. This commit removes Rails' custom severity predicates in favor of Logger's implementation, since the new implementation was released in Logger 1.4.2 and came bundled with Ruby 2.7.0. [1]: ruby/logger@525b58d97eb7dd1375f59dec6e4f34ebff0c0ecb [2]: rails/rails@629efb605728b31ad9644f6f0acaf3760b641a29 [3]: ruby/logger@7365c995bfde6cc52ad6c481e4c6fff32780025c --- Gemfile.lock | 2 +- activesupport/activesupport.gemspec | 2 +- .../logger_thread_safe_level.rb | 8 -------- activesupport/test/broadcast_logger_test.rb | 20 +++++++++++++++++++ 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e05f4b3b3c..221a428cf2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,7 +93,7 @@ PATH connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) - logger + logger (>= 1.4.2) minitest (>= 5.1) tzinfo (~> 2.0, >= 2.0.5) rails (8.0.0.alpha) diff --git a/activesupport/activesupport.gemspec b/activesupport/activesupport.gemspec index 7f1da4eb27..41cdea2569 100644 --- a/activesupport/activesupport.gemspec +++ b/activesupport/activesupport.gemspec @@ -42,5 +42,5 @@ s.add_dependency "base64" s.add_dependency "drb" s.add_dependency "bigdecimal" - s.add_dependency "logger" + s.add_dependency "logger", ">= 1.4.2" end diff --git a/activesupport/lib/active_support/logger_thread_safe_level.rb b/activesupport/lib/active_support/logger_thread_safe_level.rb index cc2e46b0da..39d6fe9d2c 100644 --- a/activesupport/lib/active_support/logger_thread_safe_level.rb +++ b/activesupport/lib/active_support/logger_thread_safe_level.rb @@ -7,14 +7,6 @@ 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 diff --git a/activesupport/test/broadcast_logger_test.rb b/activesupport/test/broadcast_logger_test.rb index 9a3466c3b8..7c7fa4239d 100644 --- a/activesupport/test/broadcast_logger_test.rb +++ b/activesupport/test/broadcast_logger_test.rb @@ -369,6 +369,26 @@ def add(message_level, message = nil, progname = nil, &block) @adds << [message_level, message, progname] if message_level >= local_level end + def debug? + level <= ::Logger::DEBUG + end + + def info? + level <= ::Logger::INFO + end + + def warn? + level <= ::Logger::WARN + end + + def error? + level <= ::Logger::ERROR + end + + def fatal? + level <= ::Logger::FATAL + end + def close @closed = true end