Skip to content

Commit 5fe3b8a

Browse files
committed
Implement MultiLogger#level=
1 parent 4d11445 commit 5fe3b8a

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

lib/iruby/logger.rb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,21 @@ class << self
66
end
77

88
class MultiLogger < BasicObject
9+
def initialize(*loggers, level: ::Logger::DEBUG)
10+
@loggers = loggers
11+
@level = level
12+
end
13+
914
attr_reader :loggers
1015

11-
def initialize(*loggers)
12-
@loggers = loggers
16+
attr_reader :level
17+
18+
def level=(new_level)
19+
p :ahi
20+
@loggers.each do |l|
21+
l.level = new_level
22+
end
23+
@level = new_level
1324
end
1425

1526
def method_missing(name, *args, &b)

test/iruby/multi_logger_test.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,17 @@ def test_multilogger
88
assert_match 'bad thing', out.string
99
assert_match 'bad thing', err.string
1010
end
11+
12+
def test_level
13+
out, err = StringIO.new, StringIO.new
14+
logger = IRuby::MultiLogger.new(Logger.new(out), Logger.new(err))
15+
16+
logger.level = Logger::DEBUG
17+
assert_equal Logger::DEBUG, logger.level
18+
assert_all(logger.loggers) {|l| l.level == Logger::DEBUG }
19+
20+
logger.level = Logger::INFO
21+
assert_equal Logger::INFO, logger.level
22+
assert_all(logger.loggers) {|l| l.level == Logger::INFO }
23+
end
1124
end

0 commit comments

Comments
 (0)