class MonoLogger::LocklessLogDevice
Public Class Methods
new(log = nil)
click to toggle source
# File lib/mono_logger.rb, line 45 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 62 def close @dev.close rescue nil end
write(message)
click to toggle source
# File lib/mono_logger.rb, line 56 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 83 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 76 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 68 def open_logfile(filename) if (FileTest.exist?(filename)) open(filename, (File::WRONLY | File::APPEND)) else create_logfile(filename) end end