Erlang 当主管子级从开始链接返回错误时,如何始终记录/显示错误原因?

Erlang 当主管子级从开始链接返回错误时,如何始终记录/显示错误原因?,erlang,otp,erlang-supervisor,gen-server,Erlang,Otp,Erlang Supervisor,Gen Server,当从一个主管启动genu服务器时(它本身是由一个应用程序启动的),我有一个问题,当genu服务器的start\u链接没有返回{ok,…}但是{error,Reason}时,我看到的唯一错误消息是: =INFO REPORT==== 20-Jan-2011::13:14:43 === application: foo exited: {shutdown,{foo_app,start,[normal,[]]}} type: temporary 未显示/记录终止的原因 是否有

当从一个主管启动
genu服务器时(它本身是由一个应用程序启动的),我有一个问题,当genu服务器的
start\u链接
没有返回
{ok,…}
但是
{error,Reason}
时,我看到的唯一错误消息是:

=INFO REPORT==== 20-Jan-2011::13:14:43 ===
    application: foo
    exited: {shutdown,{foo_app,start,[normal,[]]}}
    type: temporary
未显示/记录终止的原因

是否有办法查看/记录这些返回给主管的错误

我使用的childspec是,例如:

{ok, {{one_for_one, 3, 10},  ... 
    {usb_mux_1, 
    {usb_mux, start_link, 
    [Some_Params]},
    permanent, 
    10000, 
    worker, 
    [usb_mux]}, ...
编辑:澄清

我知道错误日志,并且已经在使用它了。问题不在于如何记录某些内容,而在于如何让主管记录其终止的原因,例如,记录谁终止并返回错误以及返回了什么

为了解决这个问题,是的,我开始使用sasl启动erlang:

 -boot start_sasl

我自己刚刚发现了答案:

主管将错误退出记录为崩溃报告

问题是shell没有显示这些崩溃报告。只是让我困惑的是,它显示信息/警告和错误报告,但没有来自主管的进度报告和崩溃报告

如果我查看磁盘日志,其中有详细的崩溃报告:

10> rb:show(4).

CRASH REPORT  <0.53.0>                                      2011-01-20 17:33:52
===============================================================================
Crashing process                                                               
   initial_call                                  {usb_mux,init,['Argument__1']}
   pid                                                                 <0.53.0>
   registered_name                                                           []
   error_info
         {exit,{undef,[{usb_port,get_gw_hw_spec,[<0.59.0>]},
...
这意味着安装了多文件错误记录器(所有
error\u logger\u mf.*
条目),但没有用于SASL事件的屏幕记录器

像这样更改条目可以修复它:

     {sasl_error_logger, tty},  %% SASL reports to tty
从sasl手册页:

sasl报告:

格式化并向stdio写入主管报告、崩溃报告和进度报告

     {sasl_error_logger, tty},  %% SASL reports to tty