2009-10-27 17 views
6

Algo aquí no me siento bien aquí, y lo que me gustaría de entrada de la comunidad - quizás me estoy acercando a esto en el camino equivocado ....Logging * Business * Events - use logging framework?

Q: ¿Es que es apropiado para usar el registro de la infraestructura tradicional marcos (como log4net) para registrar eventos comerciales?

Cuando digo eventos de negocios, quiero decir que quiero un registro global de la siguiente manera:

xx:xx Customer A purchased widget B. 
xx:xx Widget B was dispatched from warehouse. 
xx:xx Customer B payment declined. 

mayoría de los marcos de registro de infraestructura tradicionales tienen niveles caso de que algo como esto:

FATAL 
ERROR 
WARN 
INFO 
DEBUG 

Un supuesto estos mensajes no encajan bien en eso. La mejor descripción sería INFO, pero, por supuesto, estos son eventos importantes, y INFO tiene muy poca importancia.

todavía me gustaría esto como un 'log' (por ejemplo, yo no quiero tener que extraer esto de mi objetos de negocio cada vez que quiero verla)

Me parece que tengo dos opciones:

1) Use un marco como log4net y simplemente defina un registrador especial para esto (y viva con el hecho de que no se siente bien).

2) Proporcionar un servicio para realizar esto que no dependa de un servicio de registro tradicional.

Me estoy inclinando hacia 2. ¿Qué ha hecho alguien más en situaciones similares?

Gracias!

Respuesta

4

Lo que quiere suena como un servicio de auditoría, no como un servicio de registro. Si estoy en lo cierto, sus objetivos son realizar un seguimiento de estos eventos comerciales con fines históricos y tal vez incluso con fines informativos.Puede usar los detalles en la auditoría para, a falta de una frase mejor, culpar a los eventos que suceden en el sistema.

Probablemente no usaría un sistema de registro, como log4j, para este propósito. En nuestro sistema, la auditoría es un ciudadano de primera clase como un servicio completo.

- HTH, Dusty

+0

Usted mencionó servicios de auditoría, ¿conoce ** bibliotecas/servicios ** en este espacio de auditoría equivalente a _log4j_? ¿O es algo que generalmente uno desarrolla por sí mismo? – rmoestl

1

Suenan como el tipo de cosas que sus clientes podrían querer consultar o informar desde su aplicación; la opción obvia sería la base de datos.

En particular, en este caso me gustaría que los marcos de registro tradicionales no sean adecuados porque cuando se trata de datos que luego podría querer acceder dentro de su aplicación, los marcos de registro le permiten hacer cosas que realmente no tienen sentido, por ejemplo, es posible que pueda cambiar a dónde se envía el registro según el archivo app.config (que no es útil si lo intenta y lo lee desde una ubicación diferente).

Dicho esto, si un marco de registro le permite hacer exactamente lo que quiere ya continuación, tampoco hay ninguna vergüenza en tan sólo mediante el marco de registro como su implementación y ahorrándose el esfuerzo:

class TransactionLogger 
{ 
    public void Log (Message message) 
    { 
     MyLoggingFramework.Log(message.string, etc...); 
    } 
} 
1

Deje el registrador para cosas que tienen que ver con el programa, no con el negocio. Es solo una herramienta para ayudar a los desarrolladores.

Escriba su propio sistema para registrar eventos comerciales. Si es un requisito empresarial tener un registro, querrá algo sobre lo que tenga control y tendrá que usar el registrador anterior para realizar un seguimiento de cómo funciona.

Básicamente, # 2 en su pregunta.

1

Para mí la idea de un evento de negocios es que desempeña un papel en un futuro proceso de negocio, nada de realidad desencadenar acciones comerciales simplemente disponibles para el análisis.

Por lo tanto, requisitos de QOS completamente diferentes. necesita su propia API.

Conceviably inicialmente que se asigna al registro, pero en el futuro podría ir a la mensajería confiable o DB.

0

En mi experiencia, los eventos de negocios comprenden una gran o gran cantidad de operaciones técnicas entre bastidores, y solo ciertos eventos de negocios son importantes para la empresa.

Esto crea problemas al intentar utilizar una metodología de registro genérica, por lo tanto, en general, en los sistemas en los que he trabajado, ambos se usan.
Registro para los aspectos técnicos y registro de eventos comerciales para los eventos de negocios.

El registro de eventos comerciales no utiliza la misma tecnología que el registro técnico y en su lugar se registra en una tabla de historial/auditoría diseñada a medida (a veces se dividen según el detalle requerido) diseñada específicamente para cada aplicación. (Esto mantiene a los auditores y usuarios agradables y felices.)

Esto permite un fácil informe y administración de la información, mientras que obviamente amplía ligeramente el alcance de cada especificación.

0

puede usarlo, pero lo que necesita es el control de la actividad empresarial y el software de procesamiento de eventos. Por encima de todo, IBM WebSphere Business Monitor ofrece esta capacidad. Procesa el evento base común (una implementación de IBM del estándar de formato de evento web de administración distribuida de servicios web) y luego toma esos datos y crea cuadros de mando de actividad empresarial.