¿Hay un patrón o estructura lógica que pueda seguir para los números de registro de eventos?

7

¿Cuáles son algunas ideas o estructura que puedo usar al asignar EventID a eventos que se guardarán en el Registro de eventos de Windows?

Algunasopcionesqueheconsiderado

  • Secuencial(0...int.Max)
  • Múltiplode10,dondeel"0" se reemplaza por el ruido que tiene el debugLevel.
    xxx0 puede representar excepciones, información crítica, iniciar, detener, etc.
  • ...?

¿Qué enfoque de numeración le brinda mayor información cuando un usuario describe el evento en un correo electrónico o teléfono?

¿Cuál es la más útil para apoyar al personal?

    
pregunta random65537 15.06.2012 - 16:06

5 respuestas

5

Aviso justo : idear un esquema como este requerirá gobernanza para mantener el esquema útil.

He estado en varios proyectos que usan un esquema similar al que estás describiendo. Es muy útil para la mesa de ayuda, L2 y L3 cuando se aplica el esquema. Una de las grandes ventajas es que HD puede decir rápidamente que transmita ciertos mensajes y los transmita a la cadena porque indican problemas más graves de los que están capacitados.

Recomendaría dividir primero por área, luego por severidad.
Deje mucho espacio entre las áreas principales, ya que es un PITA real, si no es totalmente imposible, para mover los números de error después de que se hayan establecido. No es un desafío técnico, sino más bien un desafío de documentación y reentrenamiento.

Un esquema simple podría ser este:
- 1.000 pertenecen a "mensajes de aplicación base"
- 2,000's pertenecen a IO
- 3,000's pertenecen a DB comms
...
- Los 9,000 pertenecen a abendimientos feos que requieren una investigación inmediata de L3

donde cada uno de los bloques es un área importante de su aplicación. Interfaz de usuario / DB hooks / Config mgmt / file IO / etc ... son solo algunos ejemplos de áreas que podrían recibir su propio bloque de números de mensaje.

Dentro de esos grupos:
0 - 250 son informativos
251 - 500 están advirtiendo
501 - 750 son errores
751 - 999 son debug / trace (asumiendo que no tiene una instalación separada para eso)

Si puede usar un indicador de letras al final del mensaje, puede omitir este subgrupo de gravedad. Pero no todos los mecanismos de almacenamiento de eventos permiten el uso de un carácter no numérico.
Otra opción sería usar el último dígito del mensaje para indicar la gravedad. En otras palabras, los números de error que terminan en 0,1,2 son Info, ... 8,9 son debug / sky-is-falling.

Obviamente, atienda los números y los rangos según sus necesidades, los anteriores son solo ejemplos.

Este es un diseño similar, pero diferente al de códigos de error HTTP .
La principal diferencia es que es un área de aplicación que impulsa la organización / asignación de números de mensajes de error. Los códigos HTTP realmente no tienen áreas de aplicación para desglosar las cosas.

No soy un gran fan de usar números secuenciales o el conteo de saltos. En primer lugar, no hay una estructura lógica para esos esquemas y simplemente da una pista sobre cuándo se crearon los mensajes. Saber que 0010 se creó como un mensaje de error mucho antes de que el mensaje 750 sea una información bastante sin sentido.
Presentaría una votación para la organización lógica incluso dentro de las categorías de información / advertencia / error, pero eso puede ser muy difícil o complicado de mantener.

    
respondido por el GlenH7 15.06.2012 - 17:07
4

use una ordenación secuencial estándar para EventID, si desea diferenciar entre los niveles de registro, use una columna separada. Su idea alternativa viola la primera forma normal y haría que la creación de consultas filtradas por tipo sea mucho más difícil de lo que deberían ser.

    
respondido por el Ryathal 15.06.2012 - 16:29
3

La ID del evento, junto con la Fuente, debe identificar de forma única cada evento. Eso significa que su persona de soporte cuando se le informa de la fuente / número debe saber qué error ha ocurrido y los pasos que deben tomarse para solucionarlo.

Usamos una tabla de búsqueda en nuestra base de datos que almacena Número, Descripción, Tipo, Gravedad. De esa manera, el personal de soporte puede buscar un número (digamos 5000) y saber que significa "registro bloqueado por otro usuario". Cree un número para cada excepción conocida y el soporte será mucho más fácil.

Recomiendo encarecidamente no usar números secuenciales si no hay otro significado asignado a ellos. Eso le dará a la gente de su mesa de ayuda ninguna información adicional.

    
respondido por el briddums 15.06.2012 - 16:32
0

Creo que una combinación de secuencial con un prefijo para indicar la categoría & la severidad podría ser buena Podría tener los primeros 2 (o 3) dígitos para la gravedad, los siguientes para la categoría y luego un número secuencial. La cadena completa indicaría qué tipo de problema es y también será fácil rastrear hasta el archivo de registro. El problema es que en su código, ahora tiene 3 números para registrar en lugar de uno (si solo usara un número secuencial). Si puede usar caracteres alfabéticos (como "E", "I", "W") también podrían ser útiles.

Si está iniciando sesión en una tabla en lugar de en un archivo, entonces la categoría, la gravedad, etc., deben estar en columnas separadas de la ID.

    
respondido por el FrustratedWithFormsDesigner 15.06.2012 - 16:26
0

Incremento secuencial por 10, pero no use la columna 1s hasta que lo necesite. Es una garantía (muy) simple para la granularidad futura y la agrupación de eventos similares.

Por ejemplo, tenemos los estados 100 para "nuevo registro", 200 para "en progreso", 300 para "enviado", etc.

Recientemente, se agregaron 210, 220 y 230 porque se introdujeron pasos adicionales en el proceso de edición. Debido a que dejamos espacios en los ID, pudimos insertarlos en un lugar lógico: el rango 2 * tiene que ver con "en progreso" de alguna manera.

Pero estas adiciones tienden a ser raras, por lo que sugiero usar 10 en lugar de 100 como hicimos nosotros.

Las consultas para "todos los estados en progreso" son entonces un simple BETWEEN 200 AND 299 . (o, 20 y 29 si usas 10s)

    
respondido por el Izkata 15.06.2012 - 17:06

Lea otras preguntas en las etiquetas