Logging 为什么EntLib日志在同一时间戳上发出多条消息?
使用企业库中的日志块,我看到多个日志消息以相同的时间戳发出,尽管知道对Logging 为什么EntLib日志在同一时间戳上发出多条消息?,logging,time,enterprise-library,Logging,Time,Enterprise Library,使用企业库中的日志块,我看到多个日志消息以相同的时间戳发出,尽管知道对LogWriter.Write()的调用之间有几毫秒的间隔(测量值为System.Diagnostics.Stopwatch) 有没有关于什么原因的建议?这可能是因为企业库用于获取当前时间(可能是System.DateTime.Now)的方法精度有限。如果您需要更高的精度,您可能必须考虑使用不同的库进行日志记录 如果需要精确记录日志 使用System.Diagnostics.Stopwatch获取精确时间。。 参见这里的示例
LogWriter.Write()
的调用之间有几毫秒的间隔(测量值为System.Diagnostics.Stopwatch
)
有没有关于什么原因的建议?这可能是因为企业库用于获取当前时间(可能是System.DateTime.Now)的方法精度有限。如果您需要更高的精度,您可能必须考虑使用不同的库进行日志记录
如果需要精确记录日志 使用System.Diagnostics.Stopwatch获取精确时间。。 参见这里的示例 分辨率取决于您的硬件。可以达到纳秒级 手工制作日志条目
//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调用重载Write