0

使用 Enterprise Library 中的日志记录块,我看到多个日志消息以相同的时间戳发出,尽管知道调用LogWriter.Write()间隔为几毫秒(如测量值System.Diagnostics.Stopwatch)。

关于可能导致这种情况的任何建议?

4

2 回答 2

1

这可能是由于企业库用于获取当前时间的方法的精度有限,可能是 System.DateTime.Now。如果您需要更高的精度,您可能需要考虑使用不同的库进行日志记录。

http://msdn.microsoft.com/en-us/library/system.datetime.now.aspx

于 2012-12-11T19:34:01.143 回答
1

如果您需要精确的日志使用System.Diagnostics.Stopwatch来获得精确的时间。请参阅此处的示例http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.gettimestamp。 aspx 分辨率取决于您的硬件。可以和纳秒一样好。

手动构建日志条目,

//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);

换句话说,构建日志条目并调用 Write,而不是使用参数调用重载 write。

于 2012-12-16T10:04:12.077 回答