summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-03-24 16:30:43 +0000
committerSimon MacMullen <simon@rabbitmq.com>2014-03-24 16:30:43 +0000
commit5b7ee15f63f60ebfdeffaa72694976c9026c6d78 (patch)
treee7b73bcfaa1e533d5934c04e62fff8c2a1bce245
parent01d2366eb4a9fb97d9eaab732aa1d97fb8a5f577 (diff)
downloadrabbitmq-server-5b7ee15f63f60ebfdeffaa72694976c9026c6d78.tar.gz
More robustness in the shape of unusual events.
-rw-r--r--src/truncate.erl13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/truncate.erl b/src/truncate.erl
index e11eff1c..a13764bf 100644
--- a/src/truncate.erl
+++ b/src/truncate.erl
@@ -31,15 +31,16 @@ log_event({Type, GL, {Pid, ReportType, Report}}, Size, Decr)
when Type =:= error_report orelse
Type =:= info_report orelse
Type =:= warning_report ->
- Report2 = case ReportType of
- crash_report -> [[{K, term(V, Size, Decr)} || {K, V} <- R] ||
- R <- Report];
- _ -> [{K, term(V, Size, Decr)} || {K, V} <- Report]
- end,
- {Type, GL, {Pid, ReportType, Report2}};
+ {Type, GL, {Pid, ReportType, report(Report, Size, Decr)}};
log_event(Event, _Size, _Decr) ->
Event.
+report([[Thing]], Size, Decr) -> report([Thing], Size, Decr);
+report(List, Size, Decr) -> [case Item of
+ {K, V} -> {K, term(V, Size, Decr)};
+ _ -> term(Item, Size, Decr)
+ end || Item <- List].
+
term(Bin, N, _D) when is_binary(Bin) andalso size(Bin) > N - ?ELLIPSIS_LENGTH ->
Suffix = without_ellipsis(N),
<<Head:Suffix/binary, _/binary>> = Bin,