class Lumberjack::Device
This is an abstract class for logging devices. Subclasses must implement the write
method and may implement the close
and flush
methods if applicable.
Public Instance Methods
Source
# File lib/lumberjack/device/rolling_log_file.rb, line 94 def cleanup_files! if keep files = Dir.glob("#{path}.*").collect{|f| [f, File.ctime(f)]}.sort{|a,b| b.last <=> a.last}.collect{|a| a.first} if files.size > keep files[keep, files.length].each do |f| File.delete(f) end end end end
Source
# File lib/lumberjack/device.rb, line 20 def close flush end
Subclasses may implement this method to close the device.
Source
# File lib/lumberjack/device/rolling_log_file.rb, line 105 def do_once(file) begin file.flock(File::LOCK_EX) rescue SystemCallError # Most likely can't lock file because the stream is closed return end begin verify = file.lstat rescue nil # Execute only if the file we locked is still the same one that needed to be rolled yield if verify && verify.ino == @file_inode && verify.size > 0 ensure file.flock(File::LOCK_UN) rescue nil end end
Source
# File lib/lumberjack/device.rb, line 25 def flush end
Subclasses may implement this method to flush any buffers used by the device.
Source
# File lib/lumberjack/device.rb, line 15 def write(entry) raise NotImplementedError end
Subclasses must implement this method to write a LogEntry
.