class Mixlib::Log::Logger::LocklessLogDevice

Public Class Methods

new(log = nil) click to toggle source
# File lib/mixlib/log/logger.rb, line 64
def initialize(log = nil)
  @dev = @filename = @shift_age = @shift_size = nil
  if log.respond_to?(:write) && log.respond_to?(:close)
    @dev = log
  else
    @dev = open_logfile(log)
    @filename = log
  end
  @dev.sync = true
end

Public Instance Methods

close() click to toggle source
# File lib/mixlib/log/logger.rb, line 81
def close
  @dev.close rescue nil
end
write(message) click to toggle source
# File lib/mixlib/log/logger.rb, line 75
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/mixlib/log/logger.rb, line 101
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/mixlib/log/logger.rb, line 95
def create_logfile(filename)
  logdev = open(filename, (File::WRONLY | File::APPEND | File::CREAT))
  add_log_header(logdev)
  logdev
end
open_logfile(filename) click to toggle source
# File lib/mixlib/log/logger.rb, line 87
def open_logfile(filename)
  if FileTest.exist?(filename)
    open(filename, (File::WRONLY | File::APPEND))
  else
    create_logfile(filename)
  end
end