Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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
C# Windows事件日志,以毫秒精度写入日志_C#_Time_Event Log - Fatal编程技术网

C# Windows事件日志,以毫秒精度写入日志

C# Windows事件日志,以毫秒精度写入日志,c#,time,event-log,C#,Time,Event Log,在我的应用程序中,我使用EventLog(因为我是用金钱工作的,所以我需要记录所有可能发生的事件)。EventLog工作得很好,但问题是,我的消息传得太快(在1秒内,我可以看到3-5个事件)。 在这些消息之后,我无法在事件日志中对它们进行正确排序(我需要按时间对它们进行排序)。 问题是:如果在1s内发生5个事件,这些5个事件将在事件日志中“随机”排序,因为它仅通过YYYY/MM/DD hh/MM/ss进行记录,但我需要添加毫秒。 有没有办法做到这一点 我记录事件的基本代码: if (!E

在我的应用程序中,我使用EventLog(因为我是用金钱工作的,所以我需要记录所有可能发生的事件)。EventLog工作得很好,但问题是,我的消息传得太快(在1秒内,我可以看到3-5个事件)。
在这些消息之后,我无法在事件日志中对它们进行正确排序(我需要按时间对它们进行排序)。 问题是:如果在1s内发生5个事件,这些5个事件将在事件日志中“随机”排序,因为它仅通过YYYY/MM/DD hh/MM/ss进行记录,但我需要添加毫秒。 有没有办法做到这一点

我记录事件的基本代码:

    if (!EventLog.SourceExists(EventLogName))
        EventLog.CreateEventSource(ex.Message, EventLogName);
    EventLog log = new EventLog();
    log.Source = EventLogName;
    log.WriteEntry(ex.Message, EventLogEntryType.Error);
WriteEntry中最精确的属性是:
-字符串源
-字符串消息
-EventLogEntryType类型
-int eventID
-短类别
-字节[]原始数据

但是没有任何东西可以储存时间。
有没有办法以毫秒精度写入基本Windows事件日志?

鉴于记录时间戳的是事件日志,因此看起来无法获得毫秒精度


您是否最好使用类似这样的方式来编写基于文本的标准日志?log4net编写的日志确实有毫秒精度,还有很多其他的东西,比如编写条目的类的标识。如果/当您需要放大时,它的速度可能也会快得多。

鉴于记录时间戳的是事件日志,因此看起来您无法获得毫秒精度


您是否最好使用类似这样的方式来编写基于文本的标准日志?log4net编写的日志确实有毫秒精度,还有很多其他的东西,比如编写条目的类的标识。如果/当您需要扩展时,它的速度也会更快。

为什么您不能使用第三方库?您是否与禁止使用“非Microsoft”库的人讨论过这个问题,假设这是一个限制。有这样一个全面的限制是愚蠢的

您无法简单地获得任何其他时间戳,但您可以尝试一些破解。最明显的一个是采用毫秒精度部分(未记录在日志中),并将其用作
EventID
——它是特定于应用程序的,因此您可以随意使用它。如果每秒只有几个事件,那么事件日志日期/时间的排序应该可以,您可以直观地确定事件的顺序

如果太多,则可以将事件日志导出到Excel或其他文件中,并按两列进行排序

显然,您也可以对源进行过滤,以减少颖壳

您可能还想查看,它可能会有所帮助,但如果您只想登录到事件日志,则不会


本质上,如果您的要求是毫秒精度,那么您不应该使用Windows事件日志,因为它不提供毫秒精度。正如已经指出的,有很多很多日志解决方案可以提供您所需要的。

为什么您不能使用第三方库?您是否与禁止使用“非Microsoft”库的人讨论过这个问题,假设这是一个限制。有这样一个全面的限制是愚蠢的

您无法简单地获得任何其他时间戳,但您可以尝试一些破解。最明显的一个是采用毫秒精度部分(未记录在日志中),并将其用作
EventID
——它是特定于应用程序的,因此您可以随意使用它。如果每秒只有几个事件,那么事件日志日期/时间的排序应该可以,您可以直观地确定事件的顺序

如果太多,则可以将事件日志导出到Excel或其他文件中,并按两列进行排序

显然,您也可以对源进行过滤,以减少颖壳

您可能还想查看,它可能会有所帮助,但如果您只想登录到事件日志,则不会


本质上,如果您的要求是毫秒精度,那么您不应该使用Windows事件日志,因为它不提供毫秒精度。正如已经指出的,有很多很多日志解决方案可以满足您的需要。

非常感谢您,但我不允许登录第三方软件。因此,log4net对我来说不是最好的:(…但谢谢我的看法,在EventLog中用ms写可能是不可能的。我会等2天,如果没有人回答,我会将其标记为回答..thx..非常感谢,但我不允许登录第三方软件..所以log4net对我来说不是最好的:(…但感谢我的理解,在事件日志中用ms写可能是不可能的。我会等2天,如果没有人回答,我会像回答一样标记它..谢谢。。