anchor.diff:  
       Filename = couch_config:get("log", "file", "couchdb.log"),
       Level = level_integer(list_to_atom(couch_config:get("log", "level", "info"))),
  -    Sasl = list_to_atom(couch_config:get("log", "include_sasl", "true")),
  +    Sasl = couch_config:get("log", "include_sasl", "true") =:= "true",
   
       case ets:info(?MODULE) of
       undefined -> ets:new(?MODULE, [named_table]);
  
positive.code:     % TODO: make streaming
  
      {ok, Chunk} = file:pread(Fd, Start, LogFileSize),
      Chunk.
  
negative.code: code_change(_OldVsn, State, _Extra) ->
      {ok, State}.
  
  terminate(_Arg, #state{fd = Fd}) ->
      file:close(Fd).
  
  log(#state{fd = Fd, eol_re = EolRe}, Pid, Level, Format, Args) ->
      Msg = io_lib:format(Format, Args),
      ok = io:format("[~s] [~p] ~s~n", [Level, Pid, Msg]), % dump to console too
      Msg2 = re:replace(Msg, EolRe, "\r\n", [global]),
      ok = io:format(Fd, "[~s] [~s] [~p] ~s\r~n",
          [httpd_util:rfc1123_date(), Level, Pid, Msg2]).
  
  read(Bytes, Offset) ->
      LogFileName = couch_config:get("log", "file"),
  