使用otp日志记录的Erlang问题

时间:2012-02-02 13:01:43

标签: erlang otp

我目前正尝试在我的应用中设置otp日志,因为文档建议使用它。

我有以下启动线:

erl -pa ebin edit deps/*/ebin -boot start_sasl \
            -detached \
            -sasl sasl_error_logger "{file, \"priv/log/app.log\"}" \
            -sasl errlog_type all \
            -sname $APP_NAME \
            -s $APP_NAME

但是当我在我的应用程序中说error_logger:error_report("!!!!")error_logger:error_msg("!!!!")之类的内容时,日志文件中没有打印任何内容,我做错了什么?

1 个答案:

答案 0 :(得分:3)

问题很简单。 SASL仅记录PROGRESS,CRASH和SUPERVISOR报告(文档说明)。您正在发送一些不记录的错误报告。如果您在启用了SASL的进程中创建了一些崩溃,请说

proc_lib:spawn(fun() -> exit(argh) end).

然后该报告应出现在您的日志中。我认为mf记录器可以解决所有问题,但我可能错了。它还需要rb工具来读取有问题的日志文件。实际应用程序的一个很好的替代方案是使用Basho技术的优秀人员编写的lager应用程序。它提供了一个更像syslog的界面,它也处理SASL错误日志类型。此外,如果您尝试记录一个非常大的进程状态(默认SASL记录器将会这样做),它不会破坏您的服务器。