Dot-Net

TextWriterTraceListener 和帶有 GUID 的跟踪文件名

  • August 10, 2021

我在我的應用程序中使用TextWriterTraceListener ( System.Diagnostics ) 來跟踪一些事情,比如異常,……

該應用程序在終端伺服器上執行,如果有許多使用者同時使用它,則偵聽器開始創建許多文件名中帶有隨機GUID的跟踪文件。

是否有避免這種行為的可能性或解決方法?

我剛剛查看了TextWriterTraceListener的文件,並且有一條關於頁面下方 1/3 的註釋

如果嘗試寫入正在使用或不可用的文件,文件名將自動以 GUID 為前綴

因此,這似乎是設計使然。如果該文件確實不可用,那麼目前的實現將無能為力。您可以嘗試編寫一個 TextWriterTraceListener 的自定義實現,該實現覆蓋相關的 Write/WriteLine 方法,以便每個使用者將輸出發送到一個文件,其名稱更適合您的需求。

如果您想要將終端伺服器上所有使用者的所有日誌記錄到單個文件,那麼您幾乎肯定需要執行某種“擁有”文件並同步寫入的“第三方”程序它,例如隨後由您的自定義 TextWriterTraceListener 呼叫的 Windows 服務

引用自:https://stackoverflow.com/questions/2341110