anchor.diff:  end,
   
   INFO = fun(Format, Args) ->
  -               error_logger:info_msg(Format, Args),
  -               io:format(Format, Args)
  +               error_logger:info_msg(Format, Args)
  +       end,
  +ERROR_MSG = fun(Format, Args) ->
  +               error_logger:error_msg(Format, Args)
          end,
   StrToTerm = fun(Str) ->
                       case erl_scan:string(Str++".") of
  
positive.code:                              end
                       end
               end,
  {ok,Fd} = file:open(LogFile, [read]),
  Loop = fun TLoop() ->
                 case file:read_line(Fd) of
                     {ok, Data} ->
                         case HandleLine(Data) of
                             {fail, skip} ->
                                 skip;
                             {fail, Reason} ->
                                 INFO("HandleFail:reason:~p,Data:~p~n", [Reason, Data]);
                             ok ->
                                 timer:sleep(1),
                                 ok
                         end,
                         TLoop();
                     Other ->
                         INFO("Other:~p~n", [Other])
                 end
         end,
  Loop(),
  file:close(Fd),
  
  
  ok.
  
negative.code: 
  %% input: none
  %%
  %% op: recover ekaf
  %%
  %% e.g.: ./erl_expect -sname ejabberd@sdb-ali-hangzhou-ejabberd3 -setcookie 'LTBEXKHWOCIRRSEUNSYS' common/recover_kafka_from_log.erl "/data/apps/opt/ejabberd/var/log/ejabberd.log.0" 
  
  echo(off),
  case Args of
  	[LogFile] ->
  		IsWriteKafka = true;
  