Как завершить gen_server изящно без отчета о сбое

В моем 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

Код работает так, как задумано, но я не хочу, чтобы регистратор выводил его как изящное завершение.

Кстати, я использую лагер, но я думаю, что его удаление только изменит формат регистрации.

1 ответ

Решение

Из руководства:

Обратите внимание, что по любой другой причине, кроме normal, shutdown, или же {shutdown,Term}, gen_server предполагается, что процесс завершается из-за ошибки, и отчет об ошибке выдается с использованием error_logger:format/2,

Таким образом, если вы не хотите, чтобы какой-либо отчет об ошибке печатался, вы можете изменить причину на normal или же shutdown или если вы хотите вернуть пользовательский термин, {shutdown, Term},

handle_info({'EXIT', _From, _Reason}, State) ->
    {stop, {shutdown, partner_fled}, State};
Другие вопросы по тегам