3

在我的 gen_server 中,我像这样终止它:

handle_info({'EXIT', _From, _Reason}, State) ->
    {stop, partner_fled, State};

但仍然记录器将其打印为错误

14:56:43.349 [error] gen_server <0.3290.0> terminated with reason: partner_fled
14:56:43.349 [error] CRASH REPORT Process <0.3290.0> with 0 neighbours exited with reason: partner_fled in gen_server:terminate/7 line 812

代码按预期工作,但我不希望记录器将其打印出来作为其优雅的终止。

顺便说一句,我使用的是啤酒,但我认为删除它只会改变日志记录的格式。

4

1 回答 1

4

手册

normal请注意,除、shutdown{shutdown,Term}之外的任何其他原因,gen_server假定进程因错误而终止,并使用 发出错误报告error_logger:format/2

因此,如果您不希望打印任何错误报告,您可以将原因更改为normal,或者shutdown如果您确实想返回自定义 Term {shutdown, Term},.

handle_info({'EXIT', _From, _Reason}, State) ->
    {stop, {shutdown, partner_fled}, State};
于 2017-05-28T10:31:02.527 回答