Method: Logger#initialize
- Defined in:
- lib/logger.rb
#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', reraise_write_errors: []) ⇒ Logger
:call-seq:
Logger.new(logdev, shift_age = 0, shift_size = 1048576, **)
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 IO stream (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 is Logger::DEBUG. See Log Level:Logger.new('t.log', level: Logger::ERROR) -
progname: sets the default program name; default isnil. See Program Name:Logger.new('t.log', progname: 'mung') -
formatter: sets the entry formatter; default isnil. See formatter=. -
datetime_format: sets the format for entry timestamp; default isnil. See #datetime_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. -
reraise_write_errors: An array of exception classes, which will be reraised if there is an error when writing to the log device. The default is to swallow all exceptions raised.
581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 |
# File 'lib/logger.rb', line 581 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', reraise_write_errors: []) self.level = level self.progname = progname @default_formatter = Formatter.new self.datetime_format = datetime_format self.formatter = formatter @logdev = nil @level_override = {} 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, reraise_write_errors: reraise_write_errors) end end |