class Fluent::Plugin::TailInput::TailWatcher::RotateHandler

Public Class Methods

new(watcher, &on_rotate) click to toggle source
# File lib/fluent/plugin/in_tail.rb, line 727
def initialize(watcher, &on_rotate)
  @watcher = watcher
  @inode = nil
  @fsize = -1  # first
  @on_rotate = on_rotate
end

Public Instance Methods

on_notify(stat) click to toggle source
# File lib/fluent/plugin/in_tail.rb, line 734
def on_notify(stat)
  if stat.nil?
    inode = nil
    fsize = 0
  else
    inode = stat.ino
    fsize = stat.size
  end

  begin
    if @inode != inode || fsize < @fsize
      @on_rotate.call(stat)
    end
    @inode = inode
    @fsize = fsize
  end

rescue
  @watcher.log.error $!.to_s
  @watcher.log.error_backtrace
end