File tree Expand file tree Collapse file tree 2 files changed +22
-2
lines changed Expand file tree Collapse file tree 2 files changed +22
-2
lines changed Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ def #{severity.downcase}? # def debug?
18
18
end
19
19
20
20
def local_level
21
- IsolatedExecutionState [ :logger_thread_safe_level ]
21
+ IsolatedExecutionState [ local_level_key ]
22
22
end
23
23
24
24
def local_level = ( level )
@@ -30,7 +30,11 @@ def local_level=(level)
30
30
else
31
31
raise ArgumentError , "Invalid log level: #{ level . inspect } "
32
32
end
33
- IsolatedExecutionState [ :logger_thread_safe_level ] = level
33
+ if level . nil?
34
+ IsolatedExecutionState . delete ( local_level_key )
35
+ else
36
+ IsolatedExecutionState [ local_level_key ] = level
37
+ end
34
38
end
35
39
36
40
def level
@@ -44,5 +48,10 @@ def log_at(level)
44
48
ensure
45
49
self . local_level = old_local_level
46
50
end
51
+
52
+ private
53
+ def local_level_key
54
+ @local_level_key ||= :"logger_thread_safe_level_#{ object_id } "
55
+ end
47
56
end
48
57
end
Original file line number Diff line number Diff line change @@ -392,6 +392,17 @@ def test_temporarily_logging_at_a_symbolic_level
392
392
assert_includes @output . string , "THIS IS HERE"
393
393
end
394
394
395
+ def test_log_at_only_impact_receiver
396
+ logger2 = Logger . new ( StringIO . new )
397
+ assert_equal Logger ::DEBUG , logger2 . level
398
+ assert_equal Logger ::DEBUG , @logger . level
399
+
400
+ @logger . log_at :error do
401
+ assert_equal Logger ::DEBUG , logger2 . level
402
+ assert_equal Logger ::ERROR , @logger . level
403
+ end
404
+ end
405
+
395
406
private
396
407
def level_name ( level )
397
408
::Logger ::Severity . constants . find do |severity |
You can’t perform that action at this time.
0 commit comments