From efe64a6cc501f69fa07adc37c7be3664bdbcdfbe Mon Sep 17 00:00:00 2001 From: eletuchy Date: Wed, 27 Feb 2008 16:31:01 +0000 Subject: [PATCH] [thrift] making erlang thrift error logger slightly nicer for printing binaries Reviewed By: cpiro Test Plan: ran some services ... verified that they worked Revert Plan: sure git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665522 13f79535-47bb-0310-9956-ffa450edef68 --- lib/erl/src/thrift_logger.erl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/erl/src/thrift_logger.erl b/lib/erl/src/thrift_logger.erl index 89efd6a8..fefa1914 100644 --- a/lib/erl/src/thrift_logger.erl +++ b/lib/erl/src/thrift_logger.erl @@ -111,6 +111,16 @@ handle_event2(Symbol, Pid, Type, Message, State) -> % Message must be a string %% +bin_trim(L) when is_list(L) -> + lists:map(fun bin_trim/1, L); +bin_trim(T) when is_tuple(T) -> + list_to_tuple(bin_trim(tuple_to_list(T))); +bin_trim(Bin) when is_binary(Bin), size(Bin) > 100 -> + {Bin1,Rest} = split_binary(Bin, 100), + Bin1; +bin_trim(Term) -> + Term. + handle_event1({What, _Gleader, {Ref, Format, Data}}, State) when is_list(Format) -> Symbol = case What of @@ -126,16 +136,17 @@ handle_event1({What, _Gleader, {Ref, Format, Data}}, State) when is_list(Format) {?GS_TERM_FORMAT, [Ref, LastMessage, Obj, Reason]} -> Format1 = "** gen_server terminating in message ~p~n** State = ~s~n** Reason = ~p~n", - Message = sformat(Format1, [LastMessage, oop:inspect(Obj), Reason]), + Message = sformat(Format1, [LastMessage, bin_trim(oop:inspect(Obj)), Reason]), handle_event2(Symbol, Ref, "", Message, State); {?GS_TERM_FORMAT, _Dta} -> - Message = sformat("DATA DIDN'T MATCH: ~p~n", [Data]) ++ sformat(Format, Data), + TrimData = bin_trim(Data), + Message = sformat("DATA DIDN'T MATCH: ~p~n", [TrimData]) ++ sformat(Format, TrimData), handle_event2(Symbol, Ref, "", Message, State); {_, _} -> case lists:member(Format, config(omit_fmt)) of false -> - Message = sformat(Format, Data), + Message = sformat(Format, bin_trim(Data)), handle_event2(Symbol, Ref, "", Message, State); true -> ok -- 2.17.1