diff options
| author | Mike Perham <mike@perham.net> | 2023-02-09 17:08:33 -0800 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2023-02-10 01:08:49 +0000 |
| commit | 194520f80e1cdb71faa055d731450855a1ddb8d1 (patch) | |
| tree | e1b2a55db6d588213f5e26f2ed7cfed1dc597553 /test | |
| parent | b61edc5f5daf8fb664c9bcd7e51850176055d749 (diff) | |
[ruby/logger] Add Logger#with_level{...} for block-scoped log level.
(https://github.com/ruby/logger/pull/85)
* Update lib/logger/severity.rb
https://github.com/ruby/logger/commit/7aabb0b4aa
Diffstat (limited to 'test')
| -rw-r--r-- | test/logger/test_severity.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/logger/test_severity.rb b/test/logger/test_severity.rb index dad63472a6..e1069c8262 100644 --- a/test/logger/test_severity.rb +++ b/test/logger/test_severity.rb @@ -3,6 +3,8 @@ require 'logger' class TestLoggerSeverity < Test::Unit::TestCase + include Logger::Severity + def test_enum logger_levels = Logger.constants levels = ["WARN", "UNKNOWN", "INFO", "FATAL", "DEBUG", "ERROR"] @@ -23,4 +25,34 @@ class TestLoggerSeverity < Test::Unit::TestCase assert(logger.level) == Logger::Severity.const_get(level) end end + + def test_thread_local_level + logger = Logger.new(nil) + logger.level = INFO # default level + other = Logger.new(nil) + other.level = ERROR # default level + + assert_equal(other.level, ERROR) + logger.with_level(:WARN) do + assert_equal(other.level, ERROR) + assert_equal(logger.level, WARN) + + logger.with_level(DEBUG) do # verify reentrancy + assert_equal(logger.level, DEBUG) + + Thread.new do + assert_equal(logger.level, INFO) + logger.with_level(:WARN) do + assert_equal(other.level, ERROR) + assert_equal(logger.level, WARN) + end + assert_equal(logger.level, INFO) + end.join + + assert_equal(logger.level, DEBUG) + end + assert_equal(logger.level, WARN) + end + assert_equal(logger.level, INFO) + end end |
