警告:erlang n00b领先.
我正在努力掌握erlang,并试着用牛仔尝试一个基本的hello world应用程序.我正在模拟一个错误,基本上在我的代码中的某处返回一个无效值,并尝试解释错误,即:
=ERROR REPORT==== 11-Jul-2013::15:45:00 ===
Error in process <0.167.0> with exit value: {{try_clause,{ok, {http_req,#Port<0.3619>,ranch_tcp,keepalive,<0.167.0>,<<3 bytes>>,'HTTP/1.1', {{127,0,0,1},60312},<<9 bytes>>,undefined,8081,<<1 byte>>,undefined,<<0 bytes>>,undefined,[],[{<<10 bytes>>,<<11 bytes>>},{<<4 bytes>>,<<14 bytes>>},{<<6 bytes>>,<<3 bytes>>}],[],undefined,[],waiting,undefined,<<0 bytes>>,false,waiting,[],<<0 bytes>>,undefined}}}, [{cowboy_handler,handler_init,4,[...
Run Code Online (Sandbox Code Playgroud)
我用rebar设置我的应用程序,我正在运行它:
erl -pa ebin deps/*/ebin -s myapp
Run Code Online (Sandbox Code Playgroud)
如您所见,错误以"..."结尾,这让我觉得它被截断了.有没有办法打印完整的报告?
并且,有没有什么方法可以让它打印漂亮?
谢谢!
你看到的是sasl的tty处理程序.它将报告格式化并写入控制台.在格式化过程中它可以删除一些有用的数 要避免它,请使用这样的error_logger_mf_h处理程序:
创建app.config文件以将一些变量传递给sasl:
[
{sasl, [
{sasl_error_logger, {file, "sasl.log"}},
{errlog_type, all},
{error_logger_mf_dir, "."}, % Log directory
{error_logger_mf_maxbytes, 10485760}, % 10 MB max file size
{error_logger_mf_maxfiles, 5} % 5 files max
]}
].
Run Code Online (Sandbox Code Playgroud)
然后带启动sasl的erl节点.日志将打印到sasl.log
erl -boot start_sasl -config app.config
Run Code Online (Sandbox Code Playgroud)