Ведение журнала и простой просмотр больших объемов данных сеанса в Java

Мне нужно настроить систему ведения журнала для моего веб-приложения Java, которое не только регистрирует обычные данные (сообщение об ошибке, уровень ошибки и т. Д.), Но также может регистрировать дополнительную информацию, такую ​​как идентификатор сеанса. Конечно, я полагаю, что мог бы указать идентификатор сеанса в сообщении об ошибке, но проблема в том, что я в конечном итоге буду регистрировать много-много данных для множества разных пользователей, и мне нужно иметь систему, в которой я могу просматривать журнал и отсортируйте журнал по идентификатору сеанса.

Я смотрел log4j вместе с бензопилой и думаю, что мог бы расширить log4j, добавив дополнительные атрибуты, и это здорово, но как мне тогда просмотреть эти настраиваемые атрибуты в бензопиле?

Конечно, я не первый, у кого возникла эта проблема, есть ли что-то еще, что я мог бы использовать, кроме log4j в сочетании с бензопилой?


person Ring    schedule 01.07.2010    source источник


Ответы (4)


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

person meriton    schedule 01.07.2010
comment
Хорошо, как мне создать или получить NDC? Я предполагаю, что я должен использовать LoggingEvent.getNDC (), но как мне тогда получить событие регистрации? Все, что у меня есть, - это регистратор, приложение и объект макета. - person Ring; 02.07.2010
comment
Прочтите javadoc, который я связал. Обратите внимание, что операции по управлению NDC статичны, вам не нужно получать экземпляр класса NDC для использования NDC. Также обратите внимание, что PatternLayout можно настроить для печати текущего содержимого NDC. - person meriton; 02.07.2010
comment
Ах ха-ха. Спасибо, глупый я, по какой-то причине мой разум был заблокирован и продолжал думать, что это методы экземпляра. - person Ring; 02.07.2010

Отказ от ответственности: я один из приверженцев бензопилы ...

Chainsaw отобразит значение NDC в своем собственном столбце, а также отобразит любые записи MDC как свой собственный столбец.

Множество новых функций, которые появятся в предстоящем выпуске (скоро), которые упрощают фильтрацию, раскрашивание, поиск и сортировку ... или вытащите Chainsaw + компаньонов log4j через svn и создайте с maven ...

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

Вот видео с экрана: http://people.apache.org/~sdeboy/chainsawdemo.avi

person Scott    schedule 02.07.2010

Вы ведете журнал или проверяете своих пользователей?

Аудит включает в себя проверку действий пользователя как часть обычных операций и относится к базе данных.

Ведение журнала больше для поломки / исправления.

person Freiheit    schedule 01.07.2010

Лучше всего вставить эти данные в базу данных. Таким образом, вы можете иметь индексы по идентификатору сеанса и быстро извлекать и сортировать всю информацию, используя простой SQL или создавая легкое веб-приложение для просмотра данных из базы данных с учетом идентификатора сеанса или других критериев для поиска.

Если вам нужно быстрое решение, в которое можно загружать существующие файлы журналов, попробуйте splunk

HTH

person simonlord    schedule 01.07.2010