Подтвердить что ты не робот

Журнал аудита бизнеса - рекомендуемая библиотека или подход?

Знаете ли вы какую-либо хорошую библиотеку Java для ведения журнала аудита? Или, по крайней мере, хорошая книга/статья, чтобы помочь выбрать хороший подход для создания журнала аудита для приложения?

Требования к библиотеке:
- определить общие метаданные аудита (userId, время, IP,...)
- определять типы сообщений аудита (транзакция отправлена, полученное сообщение,...)
- заблокировать/подписать индивидуальные аудиторские сообщения (для отказа от отказа)
- поиск журнала аудита на основе метаданных
- и т.д.

Edit:
Я не ищу автоматическое решение, я совершенно счастлив назвать что-то вроде:

AuditEvent event = new TransactionSentEvent(userId, account, amount, ...)
AuditLog.audit(auditEvent);

Дело в том, что инфраструктура позади - безопасное хранение в базе данных, неподтверждение и т.д.

4b9b3361

Ответ 1

как насчет https://github.com/dima767/inspektr У меня почти такие же требования, как вы описали выше, и я копаю в inspektr.

Ответ 2

Итак, если вы ищете фреймворк, вы можете попробовать logback-audit. Это люди, которые находятся за библиотекой протоколов Java, logback.

Ответ 3

Если вы используете Java, один из способов - использовать springframework и aop. Это самый гибкий вариант. Вот пример

Вы также можете сделать это на уровне базы данных, используя hibernate (подробнее)

Ответ 4

Вы можете использовать библиотеку AscpectJ без Spring, через аннотации

Ответ 5

Хороший подход к регистрации на уровне бизнеса/операций - это определение того, что именно нужно для регистрации. Вы уже это сделали.

Вам не нужно добавлять новые рамки или AOP. Однако у вас есть некоторые дополнительные требования, которые мешают вам использовать общие фреймворки ведения журнала, такие как Log4J или java.util.logging, не создавая больше работы.

Самый простой подход, который я могу думать о том, что вы можете сделать, - это иметь класс аудита с подключением или настройкой JDBC-соединения. Это можно сделать с помощью Spring, если вы уже используете эту инфраструктуру. Если у вас нет контейнера DI, вам нужно определить это как одиночный.

Еще одна вещь, в которой вы нуждаетесь, - это возможность подписания. Java имеет java.security.Signature для подписи и проверки данных.

Как я уже говорил, у вас есть требования, которые препятствуют использованию доступных фреймворков регистрации. То есть:

  • поиск журнала аудита на основе метаданных

Для облегчения поиска вам необходимо хранить данные в базе данных, так как запись в текстовый файл будет затруднена. Используя фреймворки регистрации, вы должны изучить API и быть привязанным к фреймворку, который не является частью стандарта.