2012-05-06 19 views
6

Como sabemos, podemos utilizar la clase EventLog para escribir registros de eventos, pero estoy confundido acerca de cómo escribir el nombre de la categoría en mi registro de eventos. Thoug que proporciona el parámetro de categoría, por ejemplo, uno de los tipos de EscribirEntrada es:Cómo escribir la categoría de registro de eventos

public void WriteEntry(
string message, 
EventLogEntryType type, 
int eventID, 
short category 

)
Y que sólo muestra el número en mi registro. ¿Por qué el tipo de categoría es corto, no de cadena? ¿Cómo mostrar el nombre de la categoría en el Visor de eventos? ¡Gracias! Por cierto, no crearemos el CategoryMessageFile personalizado.

Respuesta

5

Se puede escribir una entrada de registro con una categoría determinada, pero es necesario crear un archivo DLL nativa adicional con una mesa recurso de cadena que está inscrita en el registro de eventos. Esto complica su implementación más tarde. Actualmente tienes que hacer durante la instalación

  1. Para crear nuevas fuentes del registro de eventos necesitas habilitar derechos de administrador cada vez que se crea una nueva fuente. Por lo tanto, es aconsejable recopilar todas las fuentes para que pueda instalarlas de inmediato durante la instalación inicial.
  2. Cree un dll nativo que contenga una tabla de recursos de cadena para cada id de categoría que desee suministrar.
  3. Registre la categoría dll en el registro para que Windows lo sepa.

Ahora puede usar la sobrecarga para escribir un mensaje de registro de eventos con una categoría determinada.

Hay una muy buena Dr. Jobs Journal article que describe exactamente su problema.

+0

Sí, encontré este artículo, sé que podemos crear un dll nativo adicional, pero no se recomienda en nuestro desarrollo. Entonces, ¿quiero saber si puedo usar los nombres predeterminados de las categorías del sistema? –

+0

¿Qué quiere decir con no recomendado? Es la única forma. Si reutiliza dlls de categoría desde Windows, aún debe registrarlos para su fuente de eventos. Solo puede usar un archivo de categoría para cada fuente de evento. Ahora está diseñando orígenes de eventos para cada nuevo dll de categoría que desea usar. Dudo que los nombres descriptivos estarán allí como Source1, Source2, Source3 solo para reutilizar 3 archivos de categorías diferentes que contienen mensajes sobre los que no tiene control. –

-1

que tienen tantas sobrecargas - que puede satisfacer: (¿por qué elegir los más complicados :)?)

la categoría es para filtrar eventos en el registro de eventos (que se puede ver también con attribtue fuente)

enter image description here

utilizar el primer o el segundo.

edición

EventLog.CreateEventSource("MyWebApplication", "Application") ; 
+0

Usted es escribir, pero escribir categoría es un requisito de diseño en nuestra situación. –

+1

Esto no responde a la pregunta "Cómo escribir una categoría en el registro de eventos". – Despertar

+0

@Despertar tienes razón. actualizado. –

Cuestiones relacionadas