Editar
En retrospectiva, una mejor respuesta es iniciar sesión en AMBOS sistema de archivos (primero, inmediatamente) y luego a una base de datos centralizada (incluso si está retrasada).
La razón detrás de escribir en el sistema de archivos es que si una dependencia de infraestructura externa como red, base de datos o problema de seguridad le impide escribir de forma remota, al menos tiene una recuperación si puede recuperar datos del disco duro del servidor web (algo parecido a una caja negra en la industria de las aerolíneas).
De hecho, los administradores de registro de la empresa como Splunk se puede configurar para raspar los archivos de registro del servidor local (por ejemplo, según lo escrito por log4net
, la EntLib Logging Application Block
, et al) y luego centralizar en una base de datos, donde los datos archivados pueden minado, graficado, mostrado en tableros, etc.
Pero desde una perspectiva operativa, donde es probable que tenga una granja de servidores web, y suponiendo que el sistema de archivos local y los mecanismos de registro de base de datos remotos funcionen, el caso de uso del 99% para tratar de encontrar algo en un archivo de registro seguirá siendo a través de la base de datos central (idealmente con un sistema frontal decente que le permita consultar, agregar e incluso graficar los datos de registro).
respuesta original
Si tiene la base de datos en su lugar, yo recomendaría usar esto para registros de auditoría en lugar del sistema de archivos.
Justificación:
- mecanografiada y clasificación normalizada de los datos (
severity, action type, user, date ...
)
- es más fácil encontrar los datos de auditoría (
select ... from Audits where ...
) vs Grep
- es más fácil de limpiar (por ejemplo,
Delete from Audits where = Date ...
)
- es más fácil de realizar copias de seguridad
La decisión de usar db existente o uno nuevo depende - si tiene varias aplicaciones (con sus propias bases de datos) y desea iniciar sesión/auditoría de todas las acciones en todas las aplicaciones centralmente, entonces un db centralizado podría tener sentido.
Como dices que quieres auditar la actividad del usuario, puede tener sentido auditar en la misma base de datos que la tabla/definición de tus usuarios (si corresponde).
Supongo que una base de datos local que se encuentra en el sistema de archivos de la máquina local no es una opción? Siempre puede exportar los registros que desee a la base de datos central más adelante. – CashCow