anchor.diff:  
   code_change(_OldVsn, State, _Extra) ->
       {ok, State}.
  +
  +%%
  +%% Helpers
  +%%
   
   log_open(FileName, DateHour) ->
       LogName = FileName ++ suffix(DateHour),
  
positive.code: -export([start_link/1]).
  -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
           terminate/2, code_change/3]).
  -export([log_access/1, refresh/0, get_metadata/2]).
  
  -include_lib("wm_reqdata.hrl").
  -include_lib("webmachine_logger.hrl").
  
  -record(state, {hourstamp, filename, handle}).
  
  alog_path(BaseDir) ->
      filename:join(BaseDir, "access.log").
  
  start_link(BaseDir) ->
      gen_server:start_link({local, ?MODULE}, ?MODULE, [BaseDir], []).
  
  init([BaseDir]) ->
      defer_refresh(),
  
negative.code:     Handle = log_open(FileName, DateHour),
      {ok, #state{filename=FileName, handle=Handle, hourstamp=DateHour}}.
  
  handle_call(_Msg,_From,State) -> 
      {noreply,State}.
  
  handle_cast({log_access, LogData}, State) ->
      Msg = format_req(LogData),
      {noreply, do_log(Msg, State)};
  
  handle_cast({log_message, Msg}, State) ->
      {noreply, do_log(Msg, State)};
  
  handle_cast({refresh, Time}, State) ->
      {noreply, maybe_rotate(State, Time)}.
  
  