anchor.diff:  %%          {stop, Reason}
   %%--------------------------------------------------------------------
   init([Basename]) ->
  -    DebugIoDevice = safe_open(lists:concat([Basename, ".debug"]), [append]),
  -    NormalIoDevice = safe_open(lists:concat([Basename, ".log"]), [append]),
  -    ErrorIoDevice = safe_open(lists:concat([Basename, ".error"]), [append]),
  -    {ok, #state{debug_iodev=DebugIoDevice, normal_iodev=NormalIoDevice, error_iodev=ErrorIoDevice}}.
  +    DebugFn = lists:concat([Basename, ".debug"]),
  +    NormalFn = lists:concat([Basename, ".log"]),
  +    ErrorFn = lists:concat([Basename, ".error"]),
  +    {ok, DebugIoDevice} = safe_open(DebugFn, [append]),
  +    {ok, NormalIoDevice} = safe_open(NormalFn, [append]),
  +    {ok, ErrorIoDevice} = safe_open(ErrorFn, [append]),
  +    {ok, #state{debug_iodev=DebugIoDevice, debug_fn=DebugFn,
  +		normal_iodev=NormalIoDevice, normal_fn=NormalFn,
  +		error_iodev=ErrorIoDevice, error_fn=ErrorFn}}.
   
   %%--------------------------------------------------------------------
   %% Function: handle_call/3
  
positive.code:     LogTS = lists:concat([DateTime, ".", USecStr]),
      gen_server:cast(logger, {log, Level, LogTS, Format, Arguments, self()}),
      ok.
  
  %%--------------------------------------------------------------------
  %%% Interface functions
  
negative.code: %%          {stop, Reason, Reply, State}   | (terminate/2 is called)
  %%          {stop, Reason, State}            (terminate/2 is called)
  %%--------------------------------------------------------------------
  handle_call({rotate_logs}, From, State) ->
      %% Create rotation suffix from current time
      {Megasec, Sec, USec} = now(),
      USecStr = string:substr(integer_to_list(USec), 1, 3),
      DateTime = util:sec_to_date(Megasec * 1000000 + Sec),
      case string:tokens(DateTime, " ") of
  	[Date, Time] ->
  	    Suffix = "-" ++ Date ++ "_" ++ Time,
  	    {Res, NewState} = rotate([debug, normal, error], Suffix, State),
  	    {reply, Res, NewState};
  	_ ->
  	    {reply, {error, "Could not create suitable suffix"}, State}
      end;
  
  handle_call({rotate_logs, Suffix}, From, State) ->
      {Res, NewState} = rotate([debug, normal, error], Suffix, State),
      {reply, Res, NewState};
  
  handle_call({rotate_logs, Suffix, Logs}, From, State) when list(Logs) ->
      {Res, NewState} = rotate(Logs, Suffix, State),
      {reply, Res, NewState};
  
  handle_call({quit}, From, State) ->
      {stop, normal, {ok}, State};
  
  