module ServerEngine::DaemonLogger::RotationAware

Public Class Methods

extended(obj) click to toggle source
# File lib/serverengine/daemon_logger.rb, line 137
def self.extended(obj)
  obj.update_ino
end

Public Instance Methods

reopen(log = nil) click to toggle source
Calls superclass method
# File lib/serverengine/daemon_logger.rb, line 148
def reopen(log = nil)
  super(log)
  update_ino
end
reopen!() click to toggle source
Calls superclass method
# File lib/serverengine/daemon_logger.rb, line 153
def reopen!
  super
  update_ino
end
update_ino() click to toggle source
# File lib/serverengine/daemon_logger.rb, line 141
def update_ino
  (@ino_mutex ||= Mutex.new).synchronize do
    @ino = File.stat(filename).ino rescue nil
    @last_ino_time = Time.now
  end
end
write(message) click to toggle source
Calls superclass method
# File lib/serverengine/daemon_logger.rb, line 158
def write(message)
  reopen_needed = false
  @ino_mutex.synchronize do
    if (Time.now - @last_ino_time).abs > 1
      ino = File.stat(filename).ino rescue nil
      reopen_needed = true if ino && ino != @ino
    end
  end
  reopen! if reopen_needed
  super(message)
end