当记录到Windows事件日志时,自定义应用程序应该使用的有效事件ID是否有任何范围?或者我可以使用我选择的任何事件ID(1,2,3,4 ...)。另外,我正在用C#. NET开发。
nfeuvbwi1#
EventId是应用程序特定的,所以你可以使用任何你喜欢的范围。只要确保你记录了你使用的内容和位置,这样你就可以确保你不会使用一个id两次,或者便于调试。但请记住...就像亨利·福特说的“只要是黑色,你可以选择任何你想要的颜色”--你也可以选择任何你喜欢的范围,只要这个范围福尔斯0到65535之间。
xam8gpfp2#
果然,由作者来定义和跟踪他们使用的事件ID及其含义。下面是一个参考:http://msdn.microsoft.com/en-us/library/e29k5ebc.aspx-特别有趣的是关于不将具有IPv6地址的消息写入事件日志的部分(因为 * %* 字符)。我打赌您可以使用参数来解决这个问题。
iqjalb3h3#
ID的hi位保留用于测试、调试和其他用于开发的标志。可用位包括:
参见:Event Message Structure如果创建自定义源,则应避免使用高位,但低位的所有值都可用。如果使用系统源或预先存在的源,则会发生冲突,并可能得到错误消息。消息取自注册的源消息DLL文件。可以使用SDK中的消息文件编译器生成自定义消息文件。
mctunoxg4#
Edit 1:我测试过,eventID不是32位,它只有16位。
事件ID为整数32,从-2,147,483,648到2,147,483,647
EventLog.WriteEntry Method (String, String, EventLogEntryType, Int32) public static void WriteEntry( string source, string message, EventLogEntryType type, int eventID )
csga3l585#
从技术上讲,您可以使用1 - 65536之间的任何值。但是,如果你是像我一样写大量冗长日志的人,你会发现很难将一堆条目联系在一起,那么我建议每次代码执行时生成一个随机的唯一值,这样你就可以识别事件,甚至更好的想法是创建自己的日志和源代码来使用它,而不是在应用程序日志中写入所有内容。
Random rnd = new Random(); EventId = rnd.Next(0, 65535);
5条答案
按热度按时间nfeuvbwi1#
EventId是应用程序特定的,所以你可以使用任何你喜欢的范围。只要确保你记录了你使用的内容和位置,这样你就可以确保你不会使用一个id两次,或者便于调试。
但请记住...
就像亨利·福特说的“只要是黑色,你可以选择任何你想要的颜色”--你也可以选择任何你喜欢的范围,只要这个范围福尔斯0到65535之间。
xam8gpfp2#
果然,由作者来定义和跟踪他们使用的事件ID及其含义。
下面是一个参考:http://msdn.microsoft.com/en-us/library/e29k5ebc.aspx-特别有趣的是关于不将具有IPv6地址的消息写入事件日志的部分(因为 * %* 字符)。我打赌您可以使用参数来解决这个问题。
iqjalb3h3#
ID的hi位保留用于测试、调试和其他用于开发的标志。可用位包括:
参见:Event Message Structure
如果创建自定义源,则应避免使用高位,但低位的所有值都可用。如果使用系统源或预先存在的源,则会发生冲突,并可能得到错误消息。消息取自注册的源消息DLL文件。可以使用SDK中的消息文件编译器生成自定义消息文件。
mctunoxg4#
Edit 1:我测试过,eventID不是32位,它只有16位。
事件ID为整数32,从-2,147,483,648到2,147,483,647
csga3l585#
从技术上讲,您可以使用1 - 65536之间的任何值。
但是,如果你是像我一样写大量冗长日志的人,你会发现很难将一堆条目联系在一起,那么我建议每次代码执行时生成一个随机的唯一值,这样你就可以识别事件,甚至更好的想法是创建自己的日志和源代码来使用它,而不是在应用程序日志中写入所有内容。