End of Life Ruby 3.2 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
Logger.new
# File tmp/rubies/ruby-3.2.0/lib/logger.rb, line 577
def initialize(logdev, shift_age = 0, shift_size = 1048576, level: DEBUG,
progname: nil, formatter: nil, datetime_format: nil,
binmode: false, shift_period_suffix: '%Y%m%d')
self.level = level
self.progname = progname
@default_formatter = Formatter.new
self.datetime_format = datetime_format
self.formatter = formatter
@logdev = nil
if logdev && logdev != File::NULL
@logdev = LogDevice.new(logdev, shift_age: shift_age,
shift_size: shift_size,
shift_period_suffix: shift_period_suffix,
binmode: binmode)
end
end
With the single argument logdev, returns a new logger with all default options:
Logger.new('t.log') # => #<Logger:0x000001e685dc6ac8>
Argument logdev must be one of:
-
A string filepath: entries are to be written to the file at that path; if the file at that path exists, new entries are appended.
-
An
IOstream (typically +$stdout+, +$stderr+. or an open file): entries are to be written to the given stream. -
nilorFile::NULL: no entries are to be written.
Examples:
Logger.new('t.log') Logger.new($stdout)
The keyword options are:
-
level: sets the log level; default value isLogger::DEBUG. See Log Level:ExampleLogger.new('t.log', level: Logger::ERROR)
-
progname: sets the default program name; default isnil. See Program Name:ExampleLogger.new('t.log', progname: 'mung')
-
formatter: sets the entry formatter; default isnil. See formatter=. -
datetime_format: sets the format for entry timestamp; default isnil. Seedatetime_format=. -
binmode: sets whether the logger writes in binary mode; default isfalse. -
shift_period_suffix: sets the format for the filename suffix for periodic log file rotation; default is'%Y%m%d'. See Periodic Rotation.