File tree Expand file tree Collapse file tree 3 files changed +41
-3
lines changed Expand file tree Collapse file tree 3 files changed +41
-3
lines changed Original file line number Diff line number Diff line change
1
+ * Make ` ActiveSupport::Logger ` ` #freeze ` -friendly.
2
+
3
+ * Joshua Young*
4
+
1
5
* Make ` ActiveSupport::Gzip.compress ` deterministic based on input.
2
6
3
7
` ActiveSupport::Gzip.compress ` used to include a timestamp in the output,
Original file line number Diff line number Diff line change @@ -7,6 +7,11 @@ module ActiveSupport
7
7
module LoggerThreadSafeLevel # :nodoc:
8
8
extend ActiveSupport ::Concern
9
9
10
+ def initialize ( ...)
11
+ super
12
+ @local_level_key = :"logger_thread_safe_level_#{ object_id } "
13
+ end
14
+
10
15
def local_level
11
16
IsolatedExecutionState [ local_level_key ]
12
17
end
@@ -40,8 +45,6 @@ def log_at(level)
40
45
end
41
46
42
47
private
43
- def local_level_key
44
- @local_level_key ||= :"logger_thread_safe_level_#{ object_id } "
45
- end
48
+ attr_reader :local_level_key
46
49
end
47
50
end
Original file line number Diff line number Diff line change @@ -382,6 +382,37 @@ def test_logger_level_thread_safety
382
382
ActiveSupport ::IsolatedExecutionState . isolation_level = previous_isolation_level
383
383
end
384
384
385
+ def test_logger_freeze
386
+ logger = @logger . clone
387
+ logger . freeze
388
+
389
+ assert_nothing_raised do
390
+ assert_equal Logger ::DEBUG , logger . level
391
+
392
+ logger . debug "I am frozen 1"
393
+ assert_includes @output . string , "I am frozen 1"
394
+
395
+ logger . debug { "I am frozen 2" }
396
+ assert_includes @output . string , "I am frozen 2"
397
+
398
+ logger . add Logger ::INFO , "I am frozen 3"
399
+ assert_includes @output . string , "I am frozen 3"
400
+
401
+ logger . silence do
402
+ logger . debug "I am frozen 4"
403
+ end
404
+ assert_not_includes @output . string , "I am frozen 4"
405
+ end
406
+
407
+ assert_raises FrozenError do
408
+ logger . level = Logger ::INFO
409
+ end
410
+
411
+ assert_raises FrozenError do
412
+ logger . formatter = Logger ::Formatter . new
413
+ end
414
+ end
415
+
385
416
def test_temporarily_logging_at_a_noisier_level
386
417
@logger . level = Logger ::INFO
387
418
You can’t perform that action at this time.
0 commit comments