aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/broadcast_logger_test.rb
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2016-11-25 15:57:50 +1030
committerGitHub <noreply@github.com>2016-11-25 15:57:50 +1030
commitf243e7f0d0b2cef350127fd518532fedb65f0bd0 (patch)
tree66ff7818162b9e6b9b2b905251ac85fb7c33cd41 /activesupport/test/broadcast_logger_test.rb
parent96a2c96ec3616737d2a8eeced57198206ceb9b14 (diff)
parent308e84e982b940983b4b3d5b41b0b3ac11fbae40 (diff)
downloadrails-f243e7f0d0b2cef350127fd518532fedb65f0bd0.tar.gz
rails-f243e7f0d0b2cef350127fd518532fedb65f0bd0.tar.bz2
rails-f243e7f0d0b2cef350127fd518532fedb65f0bd0.zip
Merge pull request #26874 from tgxworld/fix_broadcast_logger
`Broadcast#silence` breaks custom loggers that do not include `Logg…
Diffstat (limited to 'activesupport/test/broadcast_logger_test.rb')
-rw-r--r--activesupport/test/broadcast_logger_test.rb22
1 files changed, 19 insertions, 3 deletions
diff --git a/activesupport/test/broadcast_logger_test.rb b/activesupport/test/broadcast_logger_test.rb
index d003a33471..184d0ebddd 100644
--- a/activesupport/test/broadcast_logger_test.rb
+++ b/activesupport/test/broadcast_logger_test.rb
@@ -69,6 +69,20 @@ module ActiveSupport
assert_equal ::Logger::FATAL, log2.local_level
end
+ test "#silence does not break custom loggers" do
+ new_logger = FakeLogger.new
+ custom_logger = CustomLogger.new
+ custom_logger.extend(Logger.broadcast(new_logger))
+
+ custom_logger.silence do
+ custom_logger.error "from error"
+ custom_logger.unknown "from unknown"
+ end
+
+ assert_equal [[::Logger::ERROR, "from error", nil], [::Logger::UNKNOWN, "from unknown", nil]], custom_logger.adds
+ assert_equal [[::Logger::ERROR, "from error", nil], [::Logger::UNKNOWN, "from unknown", nil]], new_logger.adds
+ end
+
test "#silence silences all loggers below the default level of ERROR" do
logger.silence do
logger.debug "test"
@@ -98,9 +112,7 @@ module ActiveSupport
assert_equal [[::Logger::FATAL, "seen", nil]], log2.adds
end
- class FakeLogger
- include LoggerSilence
-
+ class CustomLogger
attr_reader :adds, :closed, :chevrons
attr_accessor :level, :progname, :formatter, :local_level
@@ -150,5 +162,9 @@ module ActiveSupport
@closed = true
end
end
+
+ class FakeLogger < CustomLogger
+ include LoggerSilence
+ end
end
end