class ProcessSafeLogger::LogDevice
Public Instance Methods
add_log_header(file)
click to toggle source
Override as my patch
# File lib/process_safe_logger.rb, line 44 def add_log_header(file) file.write( "# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName] ) if file.size == 0 end
check_shift_log()
click to toggle source
Override as my patch
# File lib/process_safe_logger.rb, line 51 def check_shift_log if @shift_age.is_a?(Integer) # Note: always returns false if '0'. if @filename && (@shift_age > 0) && (@dev.stat.size > @shift_size) lock_shift_log { shift_log_age } end else now = Time.now period_end = previous_period_end(now) if @dev.stat.mtime <= period_end lock_shift_log { shift_log_period(period_end) } end end end
create_logfile(filename)
click to toggle source
Override as my patch
# File lib/process_safe_logger.rb, line 28 def create_logfile(filename) begin logdev = open(filename, (File::WRONLY | File::APPEND | File::CREAT | File::EXCL)) logdev.flock(File::LOCK_EX) logdev.sync = true add_log_header(logdev) logdev.flock(File::LOCK_UN) rescue Errno::EEXIST # file is created by another process logdev = open_logfile(filename) logdev.sync = true end logdev end
lock_shift_log() { || ... }
click to toggle source
# File lib/process_safe_logger.rb, line 68 def lock_shift_log yield end
open_logfile(filename)
click to toggle source
Override as my patch
# File lib/process_safe_logger.rb, line 19 def open_logfile(filename) begin open(filename, (File::WRONLY | File::APPEND)) rescue Errno::ENOENT create_logfile(filename) end end