class MonoLogger::LocklessLogDevice
Public Class Methods
new(log = nil)
click to toggle source
# File lib/mono_logger.rb, line 41 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
Public Instance Methods
close()
click to toggle source
# File lib/mono_logger.rb, line 58 def close @dev.close rescue nil end
write(message)
click to toggle source
# File lib/mono_logger.rb, line 52 def write(message) @dev.write(message) rescue Exception => ignored warn("log writing failed. #{ignored}") end
Private Instance Methods
add_log_header(file)
click to toggle source
# File lib/mono_logger.rb, line 79 def add_log_header(file) file.write( "# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName] ) end
create_logfile(filename)
click to toggle source
# File lib/mono_logger.rb, line 72 def create_logfile(filename) logdev = open(filename, (File::WRONLY | File::APPEND | File::CREAT)) logdev.sync = true add_log_header(logdev) logdev end
open_logfile(filename)
click to toggle source
# File lib/mono_logger.rb, line 64 def open_logfile(filename) if (FileTest.exist?(filename)) open(filename, (File::WRONLY | File::APPEND)) else create_logfile(filename) end end