Method: Logger#reopen

Defined in:
lib/logger.rb

#reopen(logdev = nil, shift_age = nil, shift_size = nil, shift_period_suffix: nil, binmode: nil) ⇒ Object

Sets the logger’s output stream:

  • If logdev is nil, reopens the current output stream.

  • If logdev is a filepath, opens the indicated file for append.

  • If logdev is an IO stream (usually $stdout, $stderr, or an open File object), opens the stream for append.

Example:

logger = Logger.new('t.log')
logger.add(Logger::ERROR, 'one')
logger.close
logger.add(Logger::ERROR, 'two') # Prints 'log writing failed. closed stream'
logger.reopen
logger.add(Logger::ERROR, 'three')
logger.close
File.readlines('t.log')
# =>
# ["# Logfile created on 2022-05-12 14:21:19 -0500 by logger.rb/v1.5.0\n",
#  "E, [2022-05-12T14:21:27.596726 #22428] ERROR -- : one\n",
#  "E, [2022-05-12T14:23:05.847241 #22428] ERROR -- : three\n"]


642
643
644
645
646
# File 'lib/logger.rb', line 642

def reopen(logdev = nil, shift_age = nil, shift_size = nil, shift_period_suffix: nil, binmode: nil)
  @logdev&.reopen(logdev, shift_age: shift_age, shift_size: shift_size,
                  shift_period_suffix: shift_period_suffix, binmode: binmode)
  self
end