Feature #12224
closedlogger: Allow specifying log level in constructor
Description
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 = Logger.new($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.new:
logger = Logger.new($stdout, level: :info)
This will be effectively same as the original code I indicated above.
I attached a patch for this.
Files
Updated by shevegen (Robert A. Heiler) over 8 years ago
Here is the link to Logger:
http://ruby-doc.org/stdlib-2.3.0/libdoc/logger/rdoc/Logger.html#method-c-new
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 8 years ago
- Assignee set to sonots (Naotoshi Seo)
Updated by sonots (Naotoshi Seo) over 8 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]
Updated by nobu (Nobuyoshi Nakada) over 7 years ago
- Has duplicate Feature #13244: stdlib/Logger: add option: level added