2013-07-11 1 views
4

경고 : erlang n00b가 앞에 있습니다.오류 메시지가 잘림으로 잘린 경우

나는 카우보이와 함께 기본 안녕하세요 세계 응용 프로그램을 시도하고, 얼랑의 이해를 얻으려고합니다. 나는 기본적으로 내 코드에 어딘가 잘못된 값을 반환, 오류 시뮬레이션하고, 오류를 해석하기 위해 노력하고있어 :

=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,[... 

내가 설정 철근 내 응용 프로그램을했습니다, 나는 그것을 실행하는거야 :

여기서 알 수 있듯이 오류는 "..."로 끝나며 잘리지 않는다고 생각됩니다. 전체 보고서를 인쇄 할 수있는 방법이 있습니까?

그리고 멋진 인쇄를 할 수있는 방법이 있습니까?

감사합니다.

+0

시도'erl' 명령 줄에'-boot start_sasl'를 추가; 더 자세한 오류 보고서를 제공해야합니다. – legoscia

+1

방금 ​​시도했지만 "진행률 보고서"도 인쇄되지만 오류는 여전히 잘립니다. – Matt

답변

5

sasl의 tty 처리기가 표시됩니다. 보고서를 포맷하고 콘솔에 씁니다. 서식을 지정하는 동안 유용한 데이터를 줄일 수 있습니다. 그것을 방지하기 위해 는 error_logger_mf_h 핸들러 같이 사용

가 SASL 일부 바르를 전달하는 app.config 파일을 만듭니다

[ 

{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 
0

나는 sasl에게 오류 보고서를 자르지 말라고 말하는 쉬운 방법이 없다고 생각합니다.

보고서에 대해 자체 처리기를 만들고 잘리지 않는 방식으로 오류를 기록하십시오. (예 : io:format("~p", [Error])).

예제 보고서 핸들러의 예는 here을 참조하십시오.

error_logger:add_report_handler(?MODULE, []). 

을 또는 당신은 error_logger를 지원하는 로깅 라이브러리를 사용할 수 있습니다

그리고 당신은 오류 보고서의 가입자로 사용자 정의 핸들러를 추가해야합니다.

2

오류 메시지가 얼랑 에뮬레이터에 의해 잘립니다으로 인쇄됩니다, 그래서 SASL에서 전체 메시지를 얻을 수있는 방법이 없습니다. 더 많은 메시지를 볼 수있는 문서화되지 않은 스위치가 있습니다. "erl + # 400"은 200 자 대신 400자를 잘라냅니다.

자세한 내용 : http://erlang.org/pipermail/erlang-questions/2014-October/081442.html

+0

은 시간을내어 찾아 냈습니다. – vim

관련 문제