Project

General

Profile

Actions

Feature #16144

closed

Honor Logger#level overrides in Logger#add

Added by georgeclaghorn (George Claghorn) over 5 years ago. Updated over 5 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:94781]

Description

We attempt to override Logger#level in Rails’s Logger subclass to allow setting a different level per thread (and thus per request). But Logger#add checks the new message’s severity against the @level instance variable, so overriding #level doesn’t have the intended effect. (Because we prepend a check against #level to #add, you can only set the thread-local level greater than or equal to @level, not less. We’d like to allow setting any thread-local level.)

This patch modifies Logger#add to check #level so that third-party loggers can customize how the current level is determined without needing to reimplement #add or juggle multiple underlying Logger instances.

This is my first Ruby patch. I wasn’t sure whether to submit it here or ruby/logger on GitHub. I’m sorry if this isn’t the right place.


Files

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0