5

警告: 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,[...

アプリケーションを rebar でセットアップし、次のように実行しています。

erl -pa ebin deps/*/ebin -s myapp

ご覧のとおり、エラーは「...」で終わっています。これは、切り捨てられていると思わせます。レポート全体を印刷する方法はありますか?

そして、きれいに印刷する方法はありますか?

ありがとう!

4

3 に答える 3

5

表示されるのは、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
]}

].

次に、sasl を開始した erl ノードを持ってきます。ログは次の場所に出力されますsasl.log

erl -boot start_sasl -config app.config
于 2013-07-12T15:56:30.697 に答える
2

エラー メッセージは Erlang エミュレーターによって切り捨てられるため、sasl から完全なメッセージを取得する方法はありません。より多くのメッセージを表示するために使用できる、文書化されていないスイッチがあります。「erl +# 400」は、200 文字ではなく 400 文字で切り捨てられます。

詳細: http://erlang.org/pipermail/erlang-questions/2014-October/081442.html

于 2014-10-29T17:31:23.837 に答える