aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLourens Naudé <lourens@bearmetal.eu>2020-03-28 16:11:41 +0000
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2020-06-11 13:53:50 +0900
commitf3e12caa088cc893a54bc2810ff511e4c89b322b (patch)
tree02a1467445887200b634b01a49a6006df18f07a5
parent13baa2b5a5eddce9402480d5929261040651f2a0 (diff)
downloadruby-f3e12caa088cc893a54bc2810ff511e4c89b322b.tar.gz
[ruby/logger] Let File::NULL ("/dev/null", "NUL" etc.) be considered a nil log device
https://github.com/ruby/logger/commit/b42a1b99aa
-rw-r--r--lib/logger.rb2
-rw-r--r--test/logger/test_logger.rb5
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/logger.rb b/lib/logger.rb
index f0b99f75a2..4000dae50c 100644
--- a/lib/logger.rb
+++ b/lib/logger.rb
@@ -385,7 +385,7 @@ class Logger
self.datetime_format = datetime_format
self.formatter = formatter
@logdev = nil
- if logdev
+ if logdev && logdev != File::NULL
@logdev = LogDevice.new(logdev, shift_age: shift_age,
shift_size: shift_size,
shift_period_suffix: shift_period_suffix,
diff --git a/test/logger/test_logger.rb b/test/logger/test_logger.rb
index 521b5627d4..f8cc2e5bd6 100644
--- a/test/logger/test_logger.rb
+++ b/test/logger/test_logger.rb
@@ -378,4 +378,9 @@ class TestLogger < Test::Unit::TestCase
log = log(logger, :debug) { "msg" }
assert_nil log.msg
end
+
+ def test_does_not_instantiate_log_device_for_File_NULL
+ l = Logger.new(File::NULL)
+ assert_nil(l.instance_variable_get(:@logdev))
+ end
end