From 2b58ffe125db39028bfe829eda27708a462dfeb6 Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Mon, 28 Mar 2016 01:57:09 +0900 Subject: lib/logger.rb: allow specifying log level via Logger.new * lib/logger.rb (initialize): Allow specifying log severity level in constructor. Logger.new(*args, level: lev) becomes effectively same as Logger.new(*args).tap { |l| l.level = lev }. * test/logger/test_logger.rb: Add test for this. --- lib/logger.rb | 10 ++++++---- test/logger/test_logger.rb | 7 +++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/logger.rb b/lib/logger.rb index f3a29fa47d..63eece2e62 100644 --- a/lib/logger.rb +++ b/lib/logger.rb @@ -326,6 +326,7 @@ class Logger # :call-seq: # Logger.new(logdev, shift_age = 7, shift_size = 1048576) # Logger.new(logdev, shift_age = 'weekly') + # Logger.new(logdev, level: :info) # # === Args # @@ -338,21 +339,22 @@ class Logger # +shift_size+:: # Maximum logfile size (only applies when +shift_age+ is a number). Default # value is 1MiB. + # +level+:: + # The minimal severity level to log. Defaults to DEBUG. # # === Description # # Create an instance. # - def initialize(logdev, shift_age = 0, shift_size = 1048576) + def initialize(logdev, shift_age = 0, shift_size = 1048576, level: DEBUG) @progname = nil - @level = DEBUG @default_formatter = Formatter.new @formatter = nil @logdev = nil if logdev - @logdev = LogDevice.new(logdev, :shift_age => shift_age, - :shift_size => shift_size) + @logdev = LogDevice.new(logdev, shift_age: shift_age, shift_size: shift_size) end + self.level = level end # diff --git a/test/logger/test_logger.rb b/test/logger/test_logger.rb index 836d3b30f4..fea7aa0613 100644 --- a/test/logger/test_logger.rb +++ b/test/logger/test_logger.rb @@ -292,4 +292,11 @@ class TestLogger < Test::Unit::TestCase r.close assert_equal("msg2\n\n", msg) end + + def test_initialize_specify_level + logger = Logger.new(STDERR) # default value + assert_equal(Logger::DEBUG, logger.level) + logger = Logger.new(STDERR, level: :info) + assert_equal(Logger::INFO, logger.level) + end end -- cgit v1.2.3