Хороший приложение для журнала базы данных для Java? - PullRequest
12 голосов
/ 11 ноября 2010

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

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

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

  • Записывает исключения (дух!)
  • Записи в базу данных поступают изотдельный поток / пул

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

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

Ответы [ 3 ]

2 голосов
/ 11 ноября 2010

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

Существует обновленный не-Apache jdbc logger, здесь вы также можете попробовать: http://www.dankomannhaupt.de/projects/index.html

1 голос
/ 13 ноября 2010

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

0 голосов
/ 11 ноября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...