Selaa lähdekoodia

add reverse_pretty_stacktrace env var, default true

pull/424/head
Tristan Sloughter 7 vuotta sitten
vanhempi
commit
4c7a40ec09
No known key found for this signature in database GPG Key ID: AAB97DDECCEB8150
2 muutettua tiedostoa jossa 33 lisäystä ja 5 poistoa
  1. +18
    -4
      src/lager.erl
  2. +15
    -1
      test/pr_stacktrace_test.erl

+ 18
- 4
src/lager.erl Näytä tiedosto

@ -597,18 +597,32 @@ is_record_known(Record, Module) ->
%% @doc Print stacktrace in human readable form
pr_stacktrace(Stacktrace) ->
Stacktrace1 = case application:get_env(lager, reverse_pretty_stacktrace, true) of
true ->
lists:reverse(Stacktrace);
_ ->
Stacktrace
end,
pr_stacktrace_(Stacktrace1).
pr_stacktrace_(Stacktrace) ->
Indent = "\n ",
lists:foldl(
fun(Entry, Acc) ->
Acc ++ Indent ++ error_logger_lager_h:format_mfa(Entry)
end,
[],
lists:reverse(Stacktrace)).
Stacktrace).
pr_stacktrace(Stacktrace, {Class, Reason}) ->
lists:flatten(
pr_stacktrace(Stacktrace) ++ "\n" ++ io_lib:format("~s:~p", [Class, Reason])).
case application:get_env(lager, reverse_pretty_stacktrace, true) of
true ->
lists:flatten(
pr_stacktrace_(lists:reverse(Stacktrace)) ++ "\n" ++ io_lib:format("~s:~p", [Class, Reason]));
_ ->
lists:flatten(
io_lib:format("~s:~p", [Class, Reason]) ++ pr_stacktrace_(Stacktrace))
end.
%% R15 compatibility only
filtermap(Fun, List1) ->

+ 15
- 1
test/pr_stacktrace_test.erl Näytä tiedosto

@ -52,4 +52,18 @@ ExpectedPart = "
pr_stacktrace_test:pr_stacktrace_bad_arity_test/0 line 46
lists:concat([], [])
error:undef",
?assertNotEqual(0, string:str(Result, ExpectedPart)).
?assertNotEqual(0, string:str(Result, ExpectedPart)).
pr_stacktrace_no_reverse_test() ->
application:set_env(lager, reverse_pretty_stacktrace, false),
Result = try
bad_arity()
catch
Class:Reason ->
lager:pr_stacktrace(erlang:get_stacktrace(), {Class, Reason})
end,
ExpectedPart = "error:undef
lists:concat([], [])
pr_stacktrace_test:pr_stacktrace_bad_arity_test/0 line 60",
?assertEqual(0, string:str(Result, ExpectedPart)).

Ladataan…
Peruuta
Tallenna