Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2018-09-01 19:37:26 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2018-09-01 19:37:26 +0300
commit88d0b71d58cba45cdbf051f80e2c7c1940f96c75 (patch)
treedc2856b1b053c29e8cbf9a3b98dbdcf7091bcb36 /src/ejabberd_hooks.erl
parentb416527e4f3495dc5e66c0f44365d9bbfab710c5 (diff)
Get stacktrace out of lager context
Calling erlang:get_stacktrace() inside lager functions produces stacktraces of the logging function itself, not the function which has failed.
Diffstat (limited to 'src/ejabberd_hooks.erl')
-rw-r--r--src/ejabberd_hooks.erl3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/ejabberd_hooks.erl b/src/ejabberd_hooks.erl
index 2c992089b..bc67b4c67 100644
--- a/src/ejabberd_hooks.erl
+++ b/src/ejabberd_hooks.erl
@@ -380,11 +380,12 @@ safe_apply(Hook, Module, Function, Args) ->
apply(Module, Function, Args)
end
catch E:R when E /= exit; R /= normal ->
+ St = get_stacktrace(),
?ERROR_MSG("Hook ~p crashed when running ~p:~p/~p:~n"
"** Reason = ~p~n"
"** Arguments = ~p",
[Hook, Module, Function, length(Args),
- {E, R, get_stacktrace()}, Args]),
+ {E, R, St}, Args]),
'EXIT'
end.