如何格式化設置TraceOutputOptions = TraceOptions.Timestamp時打印的時間戳數據?如何在使用TraceOptions.Timestamp時格式化時間戳數據
即時得到類似: 時間戳= 41329240725(實際值寫在輸出文本文件)
編輯: 我想是10:22:34.32938。我如何配置TextWriterTraceListener來實現這一點?
如何格式化設置TraceOutputOptions = TraceOptions.Timestamp時打印的時間戳數據?如何在使用TraceOptions.Timestamp時格式化時間戳數據
即時得到類似: 時間戳= 41329240725(實際值寫在輸出文本文件)
編輯: 我想是10:22:34.32938。我如何配置TextWriterTraceListener來實現這一點?
你真的想記錄消息被寫入的時間恩?如果是這樣,你想使用TraceOptions.DateTime
。請注意,根據MSDN,時間被寫爲UTC。
如果您想要更多地控制時間格式(包括如果您希望以UTC以外的方式表達它),那麼您可能會編寫自己的自定義TraceListener,或者找到一個可以執行您的操作的TraceListener想。
System.Diagnostics的一個有用的補充是Ukadc.Diagnostics。有了它,您可以輕鬆地將自定義格式添加到日誌消息中(類似於可以使用log4net和NLog執行的操作)。
這裏有一些其他的鏈接的答案,我在過去提供給您可能會發現有用的日誌記錄問題:
When should I use Tracing vs Logger.NET, Enterprise Library, log4net or Ukadc.Diagnostics?
是的,我想要。現在我得到這個:DateTime = 2011-10-07T17:38:33.9825856Z。沒關係。你喜歡Ukadc.Diagnostics比log4net嗎?我試圖追蹤沒有任何其他第三部分庫。 – Pedro77
現在我的個人喜好,如果使用第三方庫不是問題,是NLog。最近發佈了一個新的更新。 NLog和log4net在功能上非常接近。使用任何一種方法都可能不會出錯。另一種選擇是使用Common.Logging(http://netcommon.sourceforge.net/)日誌抽象。這樣你就不會被綁定到特定的日誌記錄庫。請注意,Common.Logging尚未發佈使用NLog最新版本的新版本。使用Common.Logging你可以... – wageoghe
也很容易編寫你自己的基於System.Diagnostics的日誌抽象。我已經使用Ukadc.Diagnostics進行了實驗,發現它是一個非常好的庫,如果你使用System.Diagnostics作爲你的日誌系統(並且它使得System.Diagnostics成爲一個合理的選擇)。 – wageoghe
根據這一頁
http://msdn.microsoft.com/en-us/library/a10k7w6c.aspx
跟蹤選項時間戳返回蜱的數量,所以蜱轉換成時間,你需要做的:
DateTime date = new DateTime(41329240725);
string FormattedDate = date.ToShortDateString();
然而41329240725,似乎有點小對於蜱(我希望這只是一個例子)
實際上它是一個真實的例子。該數字在字符串(即插入到TraceEvent中)後寫入到輸出文本文件中。我想要10:22:34.32938之類的東西。我如何配置TextWriterTraceListener來實現這一點? – Pedro77
但你怎麼會想格式化嗎? Timestamp確實是一個long值,其實際含義取決於時間源(高性能計數器或系統定時器)和高性能計數器的頻率(如果使用的話)。 –