I know we can get the full stacktrace using __STACKTRACE__
in a catch/rescue block in elixir, but what's the correct way of printing it? In my case, I rescue from an error but I still want to log it to console. This is what I'm doing right now:
def unreliable_method(item) do
# Do something with `item`
:ok
rescue
_err ->
Logger.error("Failed for item: #{inspect(item)}")
Logger.error(inspect(__STACKTRACE__))
{:error, :processing_failed}
end
Exception.format/3
is that it takes the same arguments ascatch
does. Thuscatch kind, payload ->
maps ontoException.format(kind, payload, __STACKTRACE__)
. – Defroster