www org mapwindows mapwindow español c# windows event-log

c# - org - ¿Qué ID de evento usar para mis entradas de registro de eventos personalizadas?



mapwindows 5 (5)

Técnicamente puedes usar cualquier valor entre 1 - 65536 para eso.

Pero si usted es alguien que escribe toneladas de registros detallados como yo, le resultará difícil relacionar un montón de entradas, entonces sugeriría generar un valor aleatorio único cada vez que el código se ejecute con esto, puede identificar los eventos, incluso los una idea mucho mejor sería crear su propio registro y fuente para usar esto en lugar de escribir todo en el registro de la aplicación. me gusta

Random rnd = new Random(); EventId = rnd.Next(0, 65535);

¿Existen rangos de ID de eventos válidos que deberían ser utilizados por las aplicaciones personalizadas al iniciar sesión en el Registro de eventos de Windows? O puedo usar cualquier ID de evento de mi elección (1,2,3,4 ....). PS, estoy desarrollando en C # .NET.


Los EventIds son específicos de la aplicación, por lo que puedes usar los rangos que desees. Solo asegúrese de documentar lo que ha usado y dónde puede asegurarse de no usar una ID dos veces, o para facilitar la depuración.

Pero ten en cuenta ...

Como cuando Henry Ford dijo "puedes tener el color que quieras siempre que sea negro", también puedes usar el rango que quieras, siempre y cuando ese rango esté dentro del rango de 0 y 65535.


Los bits de alta fidelidad del ID se reservan para pruebas, depuración y otros indicadores utilizados para el desarrollo. Los bits utilizables son:

0x0000 - 0xffff

Ver: Estructura de mensaje de evento

Los bits superiores deben evitarse, pero todos los valores de los bits inferiores están disponibles si crea una fuente personalizada. Si usa un sistema o una fuente preexistente, chocará y probablemente recibirá el mensaje incorrecto. Los mensajes se toman del archivo DLL de mensajes de fuentes registradas. Se puede crear un archivo de mensaje personalizado utilizando el compilador de archivos de mensaje del SDK.


Por supuesto, depende del autor definir y rastrear las ID de eventos que usan y lo que significan.

Aquí hay una referencia: http://msdn.microsoft.com/en-us/library/e29k5ebc.aspx - Particularmente interesante es la parte sobre no escribir mensajes con direcciones IPv6 (debido al carácter % ) en el registro de eventos. Apuesto a que puedes usar un parámetro para evitar eso.


Edit1: probé eso y no es cierto que eventID es 32bits. Solo tiene 16 bits.

eventId es Int32, de -2,147,483,648 a 2,147,483,647

Método EventLog.WriteEntry (String, String, EventLogEntryType, Int32)

public static void WriteEntry( string source, string message, EventLogEntryType type, int eventID )