使用Enterprise Library中的日志记录块,我看到使用相同的时间戳发出了多个日志消息,尽管知道对LogWriter.Write()
的调用间隔了几毫秒(测量为System.Diagnostics.Stopwatch
)
有关可能导致此问题的任何建议吗?
答案 0 :(得分:1)
这可能是由于Enterprise Library用于获取当前时间的方法的精度有限,可能是System.DateTime.Now。如果需要更高的精度,可能需要使用不同的库进行记录。
http://msdn.microsoft.com/en-us/library/system.datetime.now.aspx
答案 1 :(得分:1)
如果您需要在日志中具有精确度 使用 System.Diagnostics.Stopwatch 获取精确的时间.. 请参阅此处的示例http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.gettimestamp.aspx 分辨率基于您的硬件。可以和nanosecs一样好。
手工构建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,而不是用params调用重载写。