2013-06-25 29 views

回答

0

而不是使用io:format使用日誌記錄解決方案,如lager和做tail -f console.log查看更新到STDOUT輸出。如果我記得正確,默認情況下STDOUT發送到/dev/null在分離的節點上(如果您不使用類似lager的日誌記錄解決方案)。

如果您想使用遠程shell並查看直接輸出,可以使用io:fwrite(user,"the result is ~w\n",[X])

0

您可以使用erlang函數group_leader(Group_leader,Pid)。這裏一個小例子:

在一個控制檯I運行函數:

ploop(I) -> 
    io:format("mess num ~p, group_leader is ~p~n",[I,group_leader()]), 
    receive 
    stop -> io:format("bye bye~n"); 
    {group,P,F} -> 
     group_leader(P,self()), 
     F ! group_changed, 
     ploop(0) 
    after 5000 -> 
    ploop(I+1) 
    end. 

在第二控制檯後連接到遠程外殼,我發送消息:

PD ! {group,group_leader(),self()}. 

其中PD是過程ploop的pid,就是這樣。但是這必須爲所有想要捕捉io:格式的進程完成。你可以使用進程()的結果來做到這一點,但我沒有驗證它。

+0

這可能會,但在實踐中不是一個好方法。我現在正在將我的日誌寫入文件。 – jasonchen

+0

我個人使用gen_event並根據需要附加不同的記錄器,具體取決於我在尋找什麼(簡單的控制檯日誌,ets,圖形界面......),但是我的答案能夠正常工作,並且能夠滿足你的要求:o)順便說一句,檢查關閉遠程控制檯時發生的事情。 – Pascal

相關問題