anchor.diff:            path :: string(),
             file :: undefined | file:io_device(),
             file_size :: integer(),
  +          file_inode :: integer(),
             buffer :: binary(),
             buffer_size :: integer(),
             flush_timer :: undefined | reference(),
  
positive.code:     BatchTimeout = proplists:get_value(batch_timeout, Opts, 1000),
  
      RotationConf = proplists:get_value(rotation, Opts, []),
      RotSize = proplists:get_value(size, RotationConf, 10485760),
      RotNumFiles = proplists:get_value(num_files, RotationConf, 20),
      RotCompress = proplists:get_value(compress, RotationConf, true),
  
      State = #state{path = Path,
                     buffer = <<>>,
  
negative.code:                    batch_timeout = BatchTimeout,
                     rotation_size = RotSize,
                     rotation_num_files = RotNumFiles,
                     rotation_compress = RotCompress,
                     rotation_check_interval = RotCheckInterval},
  
      case RotCheckInterval > 0 of
          true ->
              erlang:send_after(RotCheckInterval, self(), check_file);
          false ->
              ok
      end,
  
      {ok, open_log_file(State)}.
  
  