anchor.diff:  -spec on_receive_request_headers(Headers, State) -> Result when
         Headers :: h2_headers(), State :: state(), Result :: {ok, state()}.
   on_receive_request_headers(Headers, #?S{req=Req, stream=Strm}=State) ->
  -    lager:info("~p:on_receive_request_headers(~p, ~p)",
  -               [?MODULE, Headers, Req]),
  +    lager:info("[~p:~p][StrId:~B] on_receive_request_headers(~p, ~p)",
  +               [?MODULE, self(), Strm#stream.id, Headers, Req]),
       {ok, PeerCertDer} = h2_connection:get_peercert(Strm#stream.conn_pid),
       PeerCert = apns_cert:der_decode_cert(PeerCertDer),
       PeerCertInfo = apns_cert:get_cert_info_map(PeerCert),
       {ok, State#?S{req=Req#req{headers=Headers}, peercert=PeerCertInfo}}.
   
   %%--------------------------------------------------------------------
  -on_send_push_promise(Headers, #?S{req=Req}=State) ->
  -    lager:info("~p:on_send_push_promise(~p, ~p)", [Headers, Req]),
  +on_send_push_promise(Headers, #?S{stream=Stream, req=Req}=State) ->
  +    lager:info("[~p:~p][StrId:~B] on_send_push_promise(~p, ~p)",
  +               [?MODULE, self(), Stream#stream.id, Headers, Req]),
       {ok, State#?S{req=Req#req{headers=Headers}}}.
   
   %%--------------------------------------------------------------------
  -on_receive_request_data(Bin, #?S{req=Req}=State)->
  -    lager:info("~p:on_receive_request_data(~p, ~p)",
  -               [?MODULE, Bin, Req]),
  +on_receive_request_data(Bin, #?S{stream=Stream, req=Req}=State)->
  +    lager:info("[~p:~p][StrId:~B] on_receive_request_data(~p, ~p)",
  +               [?MODULE, self(), Stream#stream.id, Bin, Req]),
       {ok, State#?S{req=Req#req{data=Bin}}}.
   
   %%--------------------------------------------------------------------
   on_request_end_stream(#?S{stream=Stream, req=Req} = State) ->
  -    lager:info("~p:on_request_end_stream(~p)", [?MODULE, [Stream, Req]]),
  +    lager:info("[~p:~p][StrId:~B] on_request_end_stream(~p)",
  +               [?MODULE, self(), Stream, Req]),
       Headers = Req#req.headers,
       Method = proplists:get_value(<<":method">>, Headers),
       Path = binary_to_list(proplists:get_value(<<":path">>, Headers)),
   
  -    lager:debug("[~p:~p:~p] ~s ~s",
  +    lager:debug("[~p:~p][StrId:~B] method:~s path:~s",
                   [?MODULE, self(), Stream#stream.id, Method, Path]),
   
       handle_request(Method, Path, Headers, State),
  
positive.code:         Ms when is_integer(Ms), Ms =< 0 ->
              ok;
          Ms when is_integer(Ms) ->
              lager:info("[~p:handle_req_map] Delaying for ~B ms", [?MODULE, Delay]),
              receive after Ms -> ok end
      end,
      Response.
  
negative.code:     end.
  
  %%--------------------------------------------------------------------
  handle_req_map(ReqMap, RespHdrs, #?S{stream=Stream}=S) ->
      %% TODO: maybe validate the request JSON, but could be lots of work for
      %% little reward
      %% validate_aps_json(ReqMap)
  