From 5a7040ee1ce1c8413fcf372fd58c2010fcca3795 Mon Sep 17 00:00:00 2001 From: Magnus Klaar Date: Sat, 31 Mar 2012 11:04:52 -0700 Subject: Convert request to proplist when logging --- src/cowboy_http_protocol.erl | 12 ++++++++---- src/cowboy_http_rest.erl | 3 ++- src/cowboy_http_websocket.erl | 9 ++++++--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/cowboy_http_protocol.erl b/src/cowboy_http_protocol.erl index 6125d83..ecc7286 100644 --- a/src/cowboy_http_protocol.erl +++ b/src/cowboy_http_protocol.erl @@ -261,12 +261,13 @@ handler_init(Req, State=#state{transport=Transport, upgrade_protocol(Req, State, Module) catch Class:Reason -> error_terminate(500, State), + PLReq = lists:zip(record_info(fields, http_req), tl(tuple_to_list(Req))), error_logger:error_msg( "** Handler ~p terminating in init/3~n" " for the reason ~p:~p~n" "** Options were ~p~n" "** Request was ~p~n** Stacktrace: ~p~n~n", - [Handler, Class, Reason, Opts, Req, erlang:get_stacktrace()]) + [Handler, Class, Reason, Opts, PLReq, erlang:get_stacktrace()]) end. -spec upgrade_protocol(#http_req{}, #state{}, atom()) -> ok. @@ -283,13 +284,14 @@ handler_handle(HandlerState, Req, State=#state{handler={Handler, Opts}}) -> {ok, Req2, HandlerState2} -> terminate_request(HandlerState2, Req2, State) catch Class:Reason -> + PLReq = lists:zip(record_info(fields, http_req), tl(tuple_to_list(Req))), error_logger:error_msg( "** Handler ~p terminating in handle/2~n" " for the reason ~p:~p~n" "** Options were ~p~n** Handler state was ~p~n" "** Request was ~p~n** Stacktrace: ~p~n~n", [Handler, Class, Reason, Opts, - HandlerState, Req, erlang:get_stacktrace()]), + HandlerState, PLReq, erlang:get_stacktrace()]), handler_terminate(HandlerState, Req, State), error_terminate(500, State) end. @@ -341,13 +343,14 @@ handler_call(HandlerState, Req, State=#state{handler={Handler, Opts}}, handler_before_loop(HandlerState2, Req2, State#state{hibernate=true}) catch Class:Reason -> + PLReq = lists:zip(record_info(fields, http_req), tl(tuple_to_list(Req))), error_logger:error_msg( "** Handler ~p terminating in info/3~n" " for the reason ~p:~p~n" "** Options were ~p~n** Handler state was ~p~n" "** Request was ~p~n** Stacktrace: ~p~n~n", [Handler, Class, Reason, Opts, - HandlerState, Req, erlang:get_stacktrace()]), + HandlerState, PLReq, erlang:get_stacktrace()]), handler_terminate(HandlerState, Req, State), error_terminate(500, State) end. @@ -357,13 +360,14 @@ handler_terminate(HandlerState, Req, #state{handler={Handler, Opts}}) -> try Handler:terminate(Req#http_req{resp_state=locked}, HandlerState) catch Class:Reason -> + PLReq = lists:zip(record_info(fields, http_req), tl(tuple_to_list(Req))), error_logger:error_msg( "** Handler ~p terminating in terminate/2~n" " for the reason ~p:~p~n" "** Options were ~p~n** Handler state was ~p~n" "** Request was ~p~n** Stacktrace: ~p~n~n", [Handler, Class, Reason, Opts, - HandlerState, Req, erlang:get_stacktrace()]) + HandlerState, PLReq, erlang:get_stacktrace()]) end. -spec terminate_request(any(), #http_req{}, #state{}) -> ok. diff --git a/src/cowboy_http_rest.erl b/src/cowboy_http_rest.erl index c19d838..f9c856a 100644 --- a/src/cowboy_http_rest.erl +++ b/src/cowboy_http_rest.erl @@ -68,11 +68,12 @@ upgrade(_ListenerPid, Handler, Opts, Req) -> service_available(Req, #state{handler=Handler}) end catch Class:Reason -> + PLReq = lists:zip(record_info(fields, http_req), tl(tuple_to_list(Req))), error_logger:error_msg( "** Handler ~p terminating in rest_init/3~n" " for the reason ~p:~p~n** Options were ~p~n" "** Request was ~p~n** Stacktrace: ~p~n~n", - [Handler, Class, Reason, Opts, Req, erlang:get_stacktrace()]), + [Handler, Class, Reason, Opts, PLReq, erlang:get_stacktrace()]), {ok, _Req2} = cowboy_http_req:reply(500, Req), close end. diff --git a/src/cowboy_http_websocket.erl b/src/cowboy_http_websocket.erl index 40fef23..f08405b 100644 --- a/src/cowboy_http_websocket.erl +++ b/src/cowboy_http_websocket.erl @@ -130,11 +130,12 @@ handler_init(State=#state{handler=Handler, opts=Opts}, upgrade_denied(Req2) catch Class:Reason -> upgrade_error(Req), + PLReq = lists:zip(record_info(fields, http_req), tl(tuple_to_list(Req))), error_logger:error_msg( "** Handler ~p terminating in websocket_init/3~n" " for the reason ~p:~p~n** Options were ~p~n" "** Request was ~p~n** Stacktrace: ~p~n~n", - [Handler, Class, Reason, Opts, Req, erlang:get_stacktrace()]) + [Handler, Class, Reason, Opts, PLReq, erlang:get_stacktrace()]) end. -spec upgrade_error(#http_req{}) -> closed. @@ -395,13 +396,14 @@ handler_call(State=#state{handler=Handler, opts=Opts}, Req, HandlerState, {shutdown, Req2, HandlerState2} -> websocket_close(State, Req2, HandlerState2, {normal, shutdown}) catch Class:Reason -> + PLReq = lists:zip(record_info(fields, http_req), tl(tuple_to_list(Req))), error_logger:error_msg( "** Handler ~p terminating in ~p/3~n" " for the reason ~p:~p~n** Message was ~p~n" "** Options were ~p~n** Handler state was ~p~n" "** Request was ~p~n** Stacktrace: ~p~n~n", [Handler, Callback, Class, Reason, Message, Opts, - HandlerState, Req, erlang:get_stacktrace()]), + HandlerState, PLReq, erlang:get_stacktrace()]), websocket_close(State, Req, HandlerState, {error, handler}) end. @@ -443,13 +445,14 @@ handler_terminate(#state{handler=Handler, opts=Opts}, try Handler:websocket_terminate(TerminateReason, Req, HandlerState) catch Class:Reason -> + PLReq = lists:zip(record_info(fields, http_req), tl(tuple_to_list(Req))), error_logger:error_msg( "** Handler ~p terminating in websocket_terminate/3~n" " for the reason ~p:~p~n** Initial reason was ~p~n" "** Options were ~p~n** Handler state was ~p~n" "** Request was ~p~n** Stacktrace: ~p~n~n", [Handler, Class, Reason, TerminateReason, Opts, - HandlerState, Req, erlang:get_stacktrace()]) + HandlerState, PLReq, erlang:get_stacktrace()]) end, closed. -- cgit v1.2.3