diff options
Diffstat (limited to 'src/couch_replicator/src/couch_replicator_parse.erl')
-rw-r--r-- | src/couch_replicator/src/couch_replicator_parse.erl | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/src/couch_replicator/src/couch_replicator_parse.erl b/src/couch_replicator/src/couch_replicator_parse.erl index 5996ec507..ac25bee41 100644 --- a/src/couch_replicator/src/couch_replicator_parse.erl +++ b/src/couch_replicator/src/couch_replicator_parse.erl @@ -23,6 +23,7 @@ -include_lib("ibrowse/include/ibrowse.hrl"). -include("couch_replicator.hrl"). +-include_lib("kernel/include/logger.hrl"). -define(DEFAULT_SOCK_OPTS, "[{keepalive, true}, {nodelay, false}]"). @@ -59,13 +60,24 @@ parse_rep_doc(RepDoc) -> {ok, Rep} = try parse_rep(RepDoc, null) catch - throw:{error, Reason} -> - Stack = erlang:get_stacktrace(), + throw:{error, Reason}:Stack -> + ?LOG_ERROR(#{ + what => replication_doc_parse_error, + in => replicator, + details => Reason, + stacktrace => Stack + }), LogErr1 = "~p parse_rep_doc fail ~p ~p", couch_log:error(LogErr1, [?MODULE, Reason, Stack]), throw({bad_rep_doc, Reason}); - Tag:Err -> - Stack = erlang:get_stacktrace(), + Tag:Err:Stack -> + ?LOG_ERROR(#{ + what => replication_doc_parse_error, + in => replicator, + tag => Tag, + details => Err, + stacktrace => Stack + }), LogErr2 = "~p parse_rep_doc fail ~p:~p ~p", couch_log:error(LogErr2, [?MODULE, Tag, Err, Stack]), throw({bad_rep_doc, couch_util:to_binary({Tag, Err})}) @@ -83,13 +95,24 @@ parse_transient_rep(#{} = Body, UserName) -> {ok, Rep} = try parse_rep(Body, UserName) catch - throw:{error, Reason} -> - Stack = erlang:get_stacktrace(), + throw:{error, Reason}:Stack -> + ?LOG_ERROR(#{ + what => transient_replication_parse_error, + in => replicator, + details => Reason, + stacktrace => Stack + }), LogErr1 = "~p parse_transient_rep fail ~p ~p", couch_log:error(LogErr1, [?MODULE, Reason, Stack]), throw({bad_request, Reason}); - Tag:Err -> - Stack = erlang:get_stacktrace(), + Tag:Err:Stack -> + ?LOG_ERROR(#{ + what => transient_replication_parse_error, + in => replicator, + tag => Tag, + details => Err, + stacktrace => Stack + }), LogErr2 = "~p parse_transient_rep fail ~p ~p", couch_log:error(LogErr2, [?MODULE, Tag, Err, Stack]), throw({bad_request, couch_util:to_binary({Tag, Err})}) |