將進程輸出重定向到Golang 中的日誌
在Golang 中執行外部進程時,及時捕獲並記錄其輸出可能很有價值。在等待進程完成並使用 CombinedOutput() 允許進行日誌記錄時,對於長時間運行或未完成的進程來說是不切實際的。
或者,即時寫入 Stdout 對於不輸出到的服務來說是不夠的一個終端。一種解決方案是利用管道進行有效的輸出重定向。
利用管道進行重定向
管道在進程之間建立連接,從而實現資料傳輸。若要將進程輸出重新導向至日誌,請依照下列步驟操作:
為Stderr 新增處理程序可以透過建立一個同時處理兩個輸出通道的goroutine 來實現.
範例實作:
考慮以下使用管道進行輸出重定向的程式碼片段:
透過採用此方法,您可以有效地及時擷取並記錄外部進程的輸出,確保有價值的資訊可用於偵錯和分析。
以上是Golang中如何即時重定向外部程序輸出到日誌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!