我首先在分離模式下啓動node_a,然後啓動node_b控制檯並使用JCL(Ctrl + G)連接到node_a,然後使用application:start/1啓動應用程序。那麼我不能在應用程序中看到每個io:format輸出。如何解決這個問題?Erlang如何通過JCL在分離的erl上看到應用程序輸出?
0
A
回答
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:格式的進程完成。你可以使用進程()的結果來做到這一點,但我沒有驗證它。
相關問題
- 1. 如何通過Java Web應用程序在IBM zOS上提交JCL?
- 2. 如何在Google上分享內容通過ios應用程序
- 3. 通過JCL
- 4. 如何通過Vagrant查看和分享正在運行的Angular應用程序?
- 5. 如何在Visual Studio 2010上查看Win32應用程序中的printf輸出?
- 6. 如何在rails離線應用程序上分發ruby?
- 7. 如何通過JCL將參數傳遞給REXX程序
- 8. 如何通過命令行通過basho rebar運行Erlang應用程序時設置Erlang節點名稱
- 9. 如何通過java應用程序將數據傳輸到servlet
- 10. 如何通過命令行將iOS應用程序上傳到應用程序
- 11. asdf-erlang「erl -man」不起作用
- 12. 剛剛看到在Android Studio中調試應用程序輸出
- 13. 我如何在我的iPhone上看到rails應用程序在我的mac上通過Passenger運行
- 14. 如何在Erlang中的多個erl之間共享記錄?
- 15. 如何在Erlang shell中運行Erlang應用程序
- 16. 通過Java應用程序查看PDF應用程序
- 17. Erlang:當通過remsh連接時,爲什麼看不到error_logger:info_msg輸出?
- 18. 如何通過它的Facebook APP_ID查看Facebook應用程序?
- 19. 在Java控制檯應用程序中保持輸入/輸出分離
- 20. 如何在Turbo C IDE中看到我的程序輸出?
- 21. 如何通過Java應用程序接受Java Web應用程序的輸入?
- 22. 如何通過應用程序在Android
- 23. 通過應用程序加載程序上傳應用程序時出錯
- 24. Erl中的記錄(Erlang問題)
- 25. Erlang:如何在遠程節點上產生的進程中查看io的輸出:format/2調用
- 26. 通過我的應用程序在Android上分享pdf文件
- 27. 不能看到通過Java運行時輸出的輸出
- 28. QtCreator:在Android上部署時如何查看程序輸出
- 29. 無法看到Swing程序的輸出
- 30. 如何通過erlang中的web界面來擴展應用程序
這可能會,但在實踐中不是一個好方法。我現在正在將我的日誌寫入文件。 – jasonchen
我個人使用gen_event並根據需要附加不同的記錄器,具體取決於我在尋找什麼(簡單的控制檯日誌,ets,圖形界面......),但是我的答案能夠正常工作,並且能夠滿足你的要求:o)順便說一句,檢查關閉遠程控制檯時發生的事情。 – Pascal