2017-11-11 95 views
0

我在基於Erlang的ZMQ服務器中使用chumak。我正在傾聽和產卵過程,以接受連接:保持Erlang中的依賴關係安全

  {ok, LSocket} = chumak:socket(rep),                                 
      {ok, _} = chumak:bind(LSocket, tcp, "0.0.0.0", ?PORT),                          
      spawn_link(fun() -> loop(LSocket, DBConn, RedisConn) end), 

這一切工作正常。但是有一個問題。當發生某種「意外」(來自chumak的觀點)時,例如連接到其端口的端口掃描,接受數據的進程可能會死亡。這很好,因爲它會自動重啓。不好的是,當這種情況發生時,chumak將錯誤全部噴灑在控制檯上。我不關心他們。

有什麼辦法可以在Erlang中關閉依賴庫嗎?

回答

1

chumak錯誤通過error_logger發出。這意味着,爲了防止它們顯示出來,你必須告訴你的error_logger處理程序不要顯示它們。

我猜你在爲此使用sasl。如果是這種情況,您需要做的是將此配置添加到sasl環境:{sasl_error_logger, false}

但是要小心,如果你這樣做,你將禁止顯示所有的錯誤日誌。我不確定您是否可以告訴sasl跳過特定類型的錯誤報告。如果可能的話,您將不想打印出bind_error報告的錯誤消息。