anchor.diff:  
   websocket_terminate(_Reason, _Req, _State) ->
       ok.
  +
  +get_filename(ReqPath) ->
  +    ReqPathStr = string:strip(binary_to_list(ReqPath), left, $/),
  +    {ok, Hostname} = inet:gethostname(),
  +    File = string:join([Hostname, ReqPathStr, timestamp_to_string()], "-"),
  +    filename:join("data", File).
  +
  +timestamp_to_string() ->
  +    {{Year, Month, Day}, {Hour, Min, Sec}} = erlang:universaltime(),
  +    lists:flatten(io_lib:format(
  +                    "~4.10.0B-~2.10.0B-~2.10.0BT~2.10.0B:~2.10.0B:~2.10.0BZ",
  +                    [Year, Month, Day, Hour, Min, Sec])).
  
positive.code: -export([websocket_init/3, websocket_handle/3,
           websocket_info/3, websocket_terminate/3]).
  
  -record(state, {path="",
                  disklog
                 }).
  
  init({_Any, http}, _Req, []) ->
  
negative.code:     ok.
  
  websocket_init(_Any, Req, []) ->
      ReqPath = Req#http_req.raw_path,
      File = get_filename(ReqPath),
      filelib:ensure_dir(File),
      FileOptions = [write, raw],
      {ok, IoDevice} = file:open(File, FileOptions),
      {ok, Req, #state{io_device = IoDevice}, hibernate}.
  
  websocket_handle({text, JsonStr}, Req, State) ->
      io:format("~p~n", [JsonStr]),
      ok = file:write(State#state.io_device, JsonStr),
      {ok, Req, State};
  websocket_handle(_Any, Req, State) ->
      {ok, Req, State}.
  