anchor.diff:  
   %% do_log is executed in caller pid (by log/2 or log/3), not in
   %% persistent logger process.
  -do_log(Level, Format, Arguments) when is_atom(Level), is_list(Format), is_list(Arguments) ->
  +do_log(Level, Format, Arguments) when is_atom(Level), is_list(Format); is_binary(Format),
  +				      is_list(Arguments) ->
       %%				      Level == debug; Level == normal; Level == error ->
  -    {Megasec, Sec, USec} = now(),
  -    USecStr = format_usec(USec, 3),
  -    DateTime = util:sec_to_date(Megasec * 1000000 + Sec),
  -    LogTS = lists:concat([DateTime, ".", USecStr]),
  +    LogTS = get_ts(now()),
       Data = format_msg(LogTS, Level, self(), Format, Arguments),
       gen_server:cast(logger, {log, Level, Data}),
       ok.
   
  +%% get timestamp
  +get_ts({Megasec, Sec, USec}) -> 
  +    USecStr = format_usec(USec, 3),
  +    DateTime = util:sec_to_date(Megasec * 1000000 + Sec),
  +    list_to_binary([DateTime, $., USecStr]).
   
   %% Precision = integer(),range = 1 - 6
   format_usec(Usec, Precision) ->
  
positive.code: 	      Res when is_list(Res) ->
  		  list_to_binary(Res)
  	  end,
      %% The 10 is the trailing linefeed
      concat_binary([BinTag, Msg, 10]).
  
negative.code: %% Returns : LogMsg = binary()
  %%--------------------------------------------------------------------
  format_msg(TimeStamp, Level, Pid, Format, Arguments) ->
      %% make binary out of Format and Arguments
      Msg = case catch io_lib:format(Format, Arguments) of
  	      {'EXIT', E} ->
  		  Tmp = io_lib:format("LOG FORMATTING ERROR ~p, Format : ~p", [E, Format]),
  