Skip to content

Commit d5400dd

Browse files
authored
Merge pull request #100 from saraid/guarantee-level_override-existence
Guarantee level_override exists
2 parents 436a7d6 + 3246f38 commit d5400dd

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

lib/logger.rb

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ class Logger
381381

382382
# Logging severity threshold (e.g. <tt>Logger::INFO</tt>).
383383
def level
384-
@level_override[Fiber.current] || @level
384+
level_override[Fiber.current] || @level
385385
end
386386

387387
# Sets the log level; returns +severity+.
@@ -406,14 +406,14 @@ def level=(severity)
406406
# logger.debug { "Hello" }
407407
# end
408408
def with_level(severity)
409-
prev, @level_override[Fiber.current] = level, Severity.coerce(severity)
409+
prev, level_override[Fiber.current] = level, Severity.coerce(severity)
410410
begin
411411
yield
412412
ensure
413413
if prev
414-
@level_override[Fiber.current] = prev
414+
level_override[Fiber.current] = prev
415415
else
416-
@level_override.delete(Fiber.current)
416+
level_override.delete(Fiber.current)
417417
end
418418
end
419419
end
@@ -746,6 +746,11 @@ def format_severity(severity)
746746
SEV_LABEL[severity] || 'ANY'
747747
end
748748

749+
# Guarantee the existence of this ivar even when subclasses don't call the superclass constructor.
750+
def level_override
751+
@level_override ||= {}
752+
end
753+
749754
def format_message(severity, datetime, progname, msg)
750755
(@formatter || @default_formatter).call(severity, datetime, progname, msg)
751756
end

0 commit comments

Comments
 (0)