t0i*_*0ap 4 erlang erlang-otp lager
在我的 gen_server 中,我像这样终止它:
handle_info({'EXIT', _From, _Reason}, State) ->
{stop, partner_fled, State};
Run Code Online (Sandbox Code Playgroud)
但记录器仍然将其打印为错误
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
Run Code Online (Sandbox Code Playgroud)
该代码按预期工作,但我不希望记录器将其打印出来,因为它是一个优雅的终止。
顺便说一句,我正在使用 lager,但我认为删除它只会改变日志记录的格式。
从手册中:
请注意,除了
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};
Run Code Online (Sandbox Code Playgroud)