儘管知道LogWriter.Write()
的調用間隔幾毫秒(如測量System.Diagnostics.Stopwatch
),但使用企業庫中的日誌記錄塊,我看到多個使用相同時間戳發送的日誌消息。爲什麼EntLib日誌在相同的時間戳發出幾條消息?
有什麼建議可能會導致這種情況?
儘管知道LogWriter.Write()
的調用間隔幾毫秒(如測量System.Diagnostics.Stopwatch
),但使用企業庫中的日誌記錄塊,我看到多個使用相同時間戳發送的日誌消息。爲什麼EntLib日誌在相同的時間戳發出幾條消息?
有什麼建議可能會導致這種情況?
如果你需要有精確的日誌 在使用System.Diagnostics.Stopwatch得到一個精確的時間.. 這裏http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.gettimestamp.aspx 見例分辨率是基於你的硬件。可以和nanosecs一樣好。
contruct的logentry手,
//Microsoft.Practices.EnterpriseLibrary.Logging
var logEntry = new LogEntry() ;
/// code re stop watch add here...
FancyTime = StartTime + Elapsedticks // see StopWatch.getTimeStamp
logEntry.TimeStamp = FancyTimeFromStopWatchClass;
LogWriterImpl.Write(logEntry);
換句話說,構建logentry和調用write,而不是調用使用參數重載寫。
這可能是由於Enterprise Library用於獲取當前時間的方法的精度有限,可能是System.DateTime.Now。如果你需要更高的精度,你可能不得不考慮使用不同的庫進行日誌記錄。
http://msdn.microsoft.com/en-us/library/system.datetime.now.aspx