Преглед изворни кода

Merge pull request #424 from tsloughter/no-reverse-st

add reverse_pretty_stacktrace env var, default true
pull/427/head
Andrew Thompson пре 7 година
committed by GitHub
родитељ
комит
cee58aada4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 измењених фајлова са 33 додато и 5 уклоњено
  1. +18
    -4
      src/lager.erl
  2. +15
    -1
      test/pr_stacktrace_test.erl

+ 18
- 4
src/lager.erl Прегледај датотеку

@ -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 Прегледај датотеку

@ -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)).

Loading…
Откажи
Сачувај