2014-07-21 3 views
0

필자는 erlang을 처음 사용하고 있으며, 시카고 보스는 몇 주 동안 만 사용 해왔다. 그래서 나는 그 시간에 내 운임을 공유하고있다. 그것은 학습의 모든 부분만큼 나를 괴롭히지 않습니다.얼랭 (Erlang) 콘솔 또는 오류 로그를 읽는 도구

하지만 콘솔과 오류 로그가 나를 좌절시키는 것은 모든 것이 한 줄로 나오고 다른 메시지에서 한 스택 메시지를 말할 수 없기 때문에 거의 불가능합니다. 더 괴롭히는 것은 문자열에 구조가 있지만 모든 문자열이 지워집니다.

PHP가 웹 페이지에 오류를 인쇄하는 방법이나 배열에 print_r 기능을 인쇄하는 것과 같은 방법으로 이러한 로그를 이해할 수 있습니까? 시카고 보스에 뭔가가있을 수 있습니다.

예 :
2014년 7월 22일 16 : 30 : 54.285 [오류] < 0.784.0> @boss_web_controller : call_controller_action [{simple_bridge_request_wrapper, post_param [{simple_bridge_request_wrapper 미확정 컨트롤러 오류 366 오류 , mochiweb_request_bridge, {mochicow_request, # < 0.41310>, 'POST', '/ greeting/list', 'HTTP/1.1', {9, { "호스트", { "호스트", "jason-virtualbox : 8001"} "accept-language", {accept ","accept ","text/html, application/xhtml + xml, application/xml; q = 0.9, /; q = 0.8 "}, "accept-encoding", "gzip, deflate"}, nil, nil}, { "연결", " { "연결", "계속 유지 { "content-type", "application-x-www-form-urlencoded"}, { "content-length", { "content-length", "44" }, nil, nil}, nil}}}}, { "사용자 에이전트", { "사용자 에이전트", "모질라/5.0 (X11; 우분투; Linux x86_64; ril : 30.0) Gecko/20100101 Firefox/30.0 "}, {"referer ", {"referer ","http : // **** : 8001/greeting/hello "}, nil, nil} , < < "SheetName = % 7BBook1.2 % 7D % 2C % 7B0-Sheet1.csv % 7D">>}, 거짓, [], 없음]}, []}, {pigeon_greeting_controller, list, 3, {boss_web_controller, call_controller_action, 3, {{파일, "src/boss/boss_web_controller.erl"} {{파일, "/ home/jason/pigeon/src/controller/pigeon_greeting_controller.erl"}, {boss_web_controller, execute_action_inner, 9, [{file ("file,"src/boss/boss_web_controller.erl "}, {line, 353}}} , "src/boss/boss_web_controller.erl"}, {line, 334}}}, {boss_web_controller_handle_request, process_dynamic_request, 4, {{파일, "src/boss/boss_web_controller_handle_request.erl"}, {line, 242}}} {boss_web_controller_handle_request, process_request, 4, [{file, "src/boss/boss_web_controller_handle_request.erl"}, {line, 228}}}, {boss_web_controller_handle_request, set_timer, 7, [src/boss/boss_web_controller_han dle_request.erl "} 어떤 도움이 충당 될 것이다

, {선 (148)}]}]

+0

"처리 중 오류"메시지가 있습니까? 내가 erlang에서 오류가 발생했을 때, 그들은 보통 단 한 줄만있는 것이 아니라, 문제는 대신 쉘이 문제를 찾기 위해 걸어 가야하는 위협적인 선을 뱉어 버리는 것입니다. 예제 오류 메시지를 게시 할 수 있습니까? 시카고 보스가 기본 오류 로깅을 사용하고 있지 않을 수도 있습니다. –

+0

더 많은 스택 추적 오류와 마찬가지로, 대부분의 Chicago Boss 오류는 스택 추적이므로 {, "및 [그러나 모든 \ n 및 \ r이 제거되므로 막대한 단일 행을 읽습니다. 누군가 이걸 배우는 것은 정말 실망 스럽습니다. – jazzjazzy

답변

1

가 오류 메시지를 꽤 인쇄하는 경우 그것은 좋은 것입니다,하지만 당신의 비트와 함께 스스로 할 수 있습니다 수고. 메시지의 고기는 에를란 용어 (이 경우에는 목록)입니다. 그냥 복사하여 쉘에 얼랑 용어를지나, 그것에게 법률 문장 만들기 위해 기간을 추가

> [{simple_bridge_request_wrapper,post_param,[{simple_bridge_request_wrapper,mochiweb_request_bridge,{mochicow_request,#Port<0.41310>,'POST',"/greeting/list",'HTTP/1.1',{9,{"host",{"host","jason-virtualbox:8001"},{"accept",{"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8"},nil,{"accept-language",{"accept-language","en-US,en;q=0.5"},{"accept-encoding",{"accept-encoding","gzip, deflate"},nil,nil},{"connection",{"connection","keep-alive"},nil,{"content-type",{"content-type","application/x-www-form-urlencoded"},{"content-length",{"content-length","44"},nil,nil},nil}}}},{"user-agent",{"user-agent","Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0"},{"referer",{"referer","http://****:8001/greeting/hello"},nil,nil},nil}}},<<"SheetName=%7BBook1.2%7D%2C%7B0-Sheet1.csv%7D">>},false,[],[],none}],[]},{pigeon_greeting_controller,list,3,[{file,"/home/jason/pigeon/src/controller/pigeon_greeting_controller.erl"},{line,34}]},{boss_web_controller,call_controller_action,3,[{file,"src/boss/boss_web_controller.erl"},{line,363}]},{boss_web_controller,apply_action,4,[{file,"src/boss/boss_web_controller.erl"},{line,355}]},{boss_web_controller,execute_action_inner,9,[{file,"src/boss/boss_web_controller.erl"},{line,334}]},{boss_web_controller_handle_request,process_dynamic_request,4,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,242}]},{boss_web_controller_handle_request,process_request,4,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,228}]},{boss_web_controller_handle_request,set_timer,7,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,148}]}]. 

... 그리고 엔터 :

* 1: syntax error before: '\\' 

아차, 분명히이 아니다 erlang에있는 포트의 리터럴 표현은 하나의 간단한 설명을 인쇄합니다 : #Port<0.41310>. Erlang에서는 불법 문자를 작은 따옴표로 묶어서 원자를 만들 수 있습니다. 이는 합법적 인 용어이므로 셸에서는 허용합니다. '#Port<0.41310>'. 그럼 :

> [{simple_bridge_request_wrapper,post_param,[{simple_bridge_request_wrapper,mochiweb_request_bridge,{mochicow_request,'#Port<0.41310>','POST',"/greeting/list",'HTTP/1.1',{9,{"host",{"host","jason-virtualbox:8001"},{"accept",{"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8"},nil,{"accept-language",{"accept-language","en-US,en;q=0.5"},{"accept-encoding",{"accept-encoding","gzip, deflate"},nil,nil},{"connection",{"connection","keep-alive"},nil,{"content-type",{"content-type","application/x-www-form-urlencoded"},{"content-length",{"content-length","44"},nil,nil},nil}}}},{"user-agent",{"user-agent","Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0"},{"referer",{"referer","http://****:8001/greeting/hello"},nil,nil},nil}}},<<"SheetName=%7BBook1.2%7D%2C%7B0-Sheet1.csv%7D">>},false,[],[],none}],[]},{pigeon_greeting_controller,list,3,[{file,"/home/jason/pigeon/src/controller/pigeon_greeting_controller.erl"},{line,34}]},{boss_web_controller,call_controller_action,3,[{file,"src/boss/boss_web_controller.erl"},{line,363}]},{boss_web_controller,apply_action,4,[{file,"src/boss/boss_web_controller.erl"},{line,355}]},{boss_web_controller,execute_action_inner,9,[{file,"src/boss/boss_web_controller.erl"},{line,334}]},{boss_web_controller_handle_request,process_dynamic_request,4,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,242}]},{boss_web_controller_handle_request,process_request,4,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,228}]},{boss_web_controller_handle_request,set_timer,7,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,148}]}]. 

...조회수 :

[{simple_bridge_request_wrapper,post_param, 
    [{simple_bridge_request_wrapper,mochiweb_request_bridge, 
      {mochicow_request,'#Port<0.41310>','POST',"/greeting/list", 
       'HTTP/1.1', 
       {9, 
       {"host", 
       {"host","jason-virtualbox:8001"}, 
       {"accept", 
       {"accept", 
        "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8"}, 
       nil, 
       {"accept-language", 
        {"accept-language","en-US,en;q=0.5"}, 
        {"accept-encoding",{[...],...},nil,...}, 
        {"connection",{...},...}}}, 
       {"user-agent", 
       {"user-agent", 
        "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0"}, 
       {"referer", 
        {"referer","http://****:8001/greeting/hello"}, 
        nil,nil}, 
       nil}}}, 
       <<"SheetName=%7BBook1.2%7D%2C%7B0-Sheet1.csv%7D">>}, 
      false,[],[],none}], 
    []}, 
{pigeon_greeting_controller,list,3, 
    [{file, 
      "/home/jason/pigeon/src/controller/pigeon_greeting_controller.erl"}, 
     {line,34}]}, 
{boss_web_controller,call_controller_action,3, 
    [{file,"src/boss/boss_web_controller.erl"},{line,363}]}, 
{boss_web_controller,apply_action,4, 
    [{file,"src/boss/boss_web_controller.erl"},{line,355}]}, 
{boss_web_controller,execute_action_inner,9, 
    [{file,"src/boss/boss_web_controller.erl"},{line,334}]}, 
{boss_web_controller_handle_request,process_dynamic_request, 
    4, 
    [{file,"src/boss/boss_web_controller_handle_request.erl"}, 
     {line,242}]}, 
{boss_web_controller_handle_request,process_request,4, 
    [{file,"src/boss/boss_web_controller_handle_request.erl"}, 
     {line,228}]}, 
{boss_web_controller_handle_request,set_timer,7, 
    [{file,"src/boss/boss_web_controller_handle_request.erl"}, 
     {line,148}]}] 

저는 Chicago Boss를 사용한 적이 없으므로 도움을받을 수 없습니다. 메시지는 undef라고 했으므로 아마도 erlang이 그 첫 번째 기능을 찾지 못했을 것이라고 생각합니다. 어쩌면 simple_bridge_request_wrapper가 아직 설치되지 않았거나 컴파일되지 않았을 수 있습니까?

분명히, 이것은 항상 귀찮은 일입니다. 어쩌면 이전 쉘 명령의 결과를 얻는 방법이있을 수 있습니다. 그런 다음 개인 셸 재미를 작성하여 user_default.erl에 저장하여이 프로세스를 자동화 할 수 있습니다. 또는 이맥스를 사용하는 경우 elisp에서 수행하십시오. 또는 CB를 패치하여 오류 메시지를 인쇄하십시오.

+0

매우 우아하고 간단한 해결책인데, 나는 자주 배우는 동안 내가 완전히 이해하지 못하는 메시지를 읽을 수 있기를 바랍니다. , 고마워. – jazzjazzy