Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 为什么EntLib日志在同一时间戳上发出多条消息?_Logging_Time_Enterprise Library - Fatal编程技术网

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