[erlang-questions] Re: limited error_logger dump (vm crashes because of generating dump)
Mon Sep 20 14:55:32 CEST 2010
On Mon, Sep 20, 2010 at 2:53 AM, Max Lapshin <max.lapshin@REDACTED> wrote:
> In fact gen_server:format_status doesn't solve the problem:
> format("** Generic server ~p terminating \n"
> "** Last message in was ~p~n"
> "** When Server state == ~p~n"
> "** Reason for termination == ~n** ~p~n",
> [Name, Msg, State, Reason1]),
> This formatting has problems: Reason1 maybe many megabytes big when
> state was big and some badmatch has met with it.
> Maybe it would be better to format status (change import from
> error_logger:format to error_logger_formatter:format) into
> limited-size binary in the dying process and only then send data to
> error_logger process. It will reduce memory consumption, lower
> bottleneck-ness of one-core error_logger.
> Speaking about detailed logging: in fact, it is usually interesting to
> know first 10-20 lines of termination Reason and process dictionay
> with each value, limited to 10-20 lines. Or 20-40. But not 400 000
> lines of state dump.
Perhaps you could provide your own format_status function for your gen_server:
See especially the final paragraph of the description there.
More information about the erlang-questions