class MonoLogger::LocklessLogDevice
def add_log_header(file)
def add_log_header(file) file.write( "# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName] ) end
def close
def close @dev.close rescue nil end
def create_logfile(filename)
def create_logfile(filename) logdev = open(filename, (File::WRONLY | File::APPEND | File::CREAT)) logdev.sync = true add_log_header(logdev) logdev end
def initialize(log = nil)
def initialize(log = nil) @dev = @filename = @shift_age = @shift_size = nil if log.respond_to?(:write) and log.respond_to?(:close) @dev = log else @dev = open_logfile(log) @dev.sync = true @filename = log end end
def open_logfile(filename)
def open_logfile(filename) if (FileTest.exist?(filename)) open(filename, (File::WRONLY | File::APPEND)) else create_logfile(filename) end end
def write(message)
def write(message) @dev.write(message) rescue Exception => ignored warn("log writing failed. #{ignored}") end