Редактировать
В ретроспективе лучшим ответом будет войти в ОБА файловую систему (сначала, немедленно), а затем в централизованную базу данных (даже если она задерживается)).
Логическое обоснование записи в файловую систему заключается в том, что если внешняя инфраструктурная зависимость, такая как сеть, база данных или проблема безопасности, не позволяет вам писать удаленно, то, по крайней мере, у вас есть запасной вариант, если вы можете восстановить данные изЖесткий диск веб-сервера (что-то вроде черного ящика в авиационной отрасли).
Фактически, менеджеры журналов предприятия, такие как Splunk , могут быть настроены для очистки файлов журнала локального сервера (например, какнаписано log4net
, EntLib Logging Application Block
и др.), а затем централизовать их в доступной для поиска базе данных, где записанные данные можно добывать, графически отображать на информационных панелях и т. д.
Но с точки зрения эксплуатациигде, вероятно, у вас будет ферма веб-серверов, и предполагается, что как локальная файловая система, так и механизмы ведения журналов удаленной базы данныхПри работе в 99% случаев для фактической попытки найти что-либо в файле журнала все равно будет использоваться центральная база данных (в идеале, с приличной интерфейсной системой, позволяющей запрашивать, агрегировать и даже отображать данные журнала).
Оригинальный ответ
Если у вас есть база данных, я бы рекомендовал использовать ее для записей аудита вместо файловой системы.
Обоснование:
- типизированная и нормализованная классификация данных (
severity, action type, user, date ...
) - легче найти данные аудита (
select ... from Audits where ...
) против Grep - itлегче очистить (например,
Delete from Audits where = Date ...
) - проще создать резервную копию
Решение об использовании существующей базы данных или новой зависит от того, есть ли у вас несколько приложений (сих собственные базы данных) и хотите централизованно регистрировать / проверять все действия во всех приложениях, тогда может иметь смысл централизованная база данных.
Поскольку вы говорите, что хотите проверять активность пользователей, возможно, имеет смысл проводить аудит вта же база данных, что и у вашей таблицы пользователей / defначало (если применимо).