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

Хорошее приложение для регистрации базы данных для Java?

На моем рабочем месте мы написали пользовательское приложение log4j, которое записывает сообщения журнала в базу данных (использует асинхронный выделенный поток, поэтому производительность не попадает). Я предпочитаю это намного больше, чем писать в лог файлы - журнал с базами данных гораздо проще обрабатывать и анализировать.

Есть ли решение с открытым исходным кодом, которое делает это (для конкретного log4j или любого другого java-регистратора)?

Некоторые вещи, которые есть у нашего appender, и я хотел бы увидеть в альтернативе:

  • Исключения журналов (duh!)
  • Запись базы данных осуществляется из отдельного потока/пула

Наш appender поддерживает следующие столбцы, и я хотел бы видеть их все в любом решении, которое мы находим.

  • LOGID
  • Время
  • сообщение
  • StackTrace
  • идентификатор процесса
  • идентификатор потока
  • имя машины
  • компонент
  • Уровень (debug/info/warn/...)
  • ThreadName
4b9b3361

Ответ 1

Существует также класс DBAppender, предоставляемый log4j (log4j требует наличия определенного набора таблиц для ведения журнала с помощью этого приложения). http://logging.apache.org/log4j/companions/receivers/apidocs/org/apache/log4j/db/DBAppender.html

Здесь доступен обновленный регистратор ошибок без Apache, который вы также можете попробовать: http://www.dankomannhaupt.de/projects/index.html

Ответ 2

Просто любопытно, не сильно ли повлияло бы на производительность приложения, принимающего такой appender? Ведение журнала непосредственно в реляционной базе данных является довольно дорогостоящим, даже если вы делаете это асинхронно.

Ответ 3

Для записи в базы данных вам не требуется настраиваемый appender для LOG4J. Вы можете использовать JDBCAppender в комплекте с дистрибутивом Apache.

Согласно документации APACHE, этот API может быть заменен в будущем. Но пока мы используем его, и он работает очень хорошо.