Feature #12224


logger: Allow specifying log level in constructor

Added by rhenium (Kazuki Yamaguchi) over 6 years ago. Updated over 6 years ago.

Target version:


When I use Logger class, I very often (or maybe always) set minimal log level together. Since method chaining can't be used for setters, we have to split it into two statements:

logger =$stdout)
logger.level = :info

Imagine if the logger was much longer name, such as ActiveRecord::Base.logger. I personally don't want to repeat it.
I found a number of samples on GitHub (they would countain copy-and-pastes though) [1].

So I propose adding a new keyword argument level to

logger =$stdout, level: :info)

This will be effectively same as the original code I indicated above.

I attached a patch for this.



Related issues 1 (0 open1 closed)

Has duplicate Ruby master - Feature #13244: stdlib/Logger: add option: levelRejectedActions

Updated by shevegen (Robert A. Heiler) over 6 years ago

Here is the link to Logger:

It already uses multiple arguments:

new(logdev, shift_age = 7, shift_size = 1048576)
new(logdev, shift_age = 'weekly') 

So I assume another optional one such as :level would be ok (my personal opinion).

Updated by sonots (Naotoshi Seo) over 6 years ago

  • Assignee set to sonots (Naotoshi Seo)
Actions #3

Updated by sonots (Naotoshi Seo) over 6 years ago

  • Status changed from Open to Closed

Applied in changeset r54638.

Allow specifying logger parameters in constructor

  • lib/logger.rb: Allow specifying logger prameters such as level,
    progname, datetime_format, formatter in constructor [Bug #12224]
Actions #4

Updated by nobu (Nobuyoshi Nakada) over 5 years ago

  • Has duplicate Feature #13244: stdlib/Logger: add option: level added

Also available in: Atom PDF