diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-09-01 19:37:26 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-09-01 19:37:26 +0300 |
commit | 88d0b71d58cba45cdbf051f80e2c7c1940f96c75 (patch) | |
tree | dc2856b1b053c29e8cbf9a3b98dbdcf7091bcb36 /src/ejabberd_hooks.erl | |
parent | b416527e4f3495dc5e66c0f44365d9bbfab710c5 (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.erl | 3 |
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. |