Logback - SiftingAppender с внедренной БД Appender - PullRequest
0 голосов
/ 15 ноября 2011

Мне известно о SiftingAppener и его способности разделять события журналирования на отдельные файлы журналов

Вместо этого SiftingAppender может разделять события журналирования в соответствии с сеансами пользователя, так что журналы, генерируемые каждым пользователем, переходят в ОДИН SQLвставить заявление (аналогично FileAppender с одним файлом)

Любые идеи или предложения о том, как этого добиться?

Обратите внимание на Строка числа

До:

    TimeStamp       Formatted   Message     Logger_Name         Level_String
1   1321325688174   Step 2:     Then stop   com.test.Account    INFO
2   1321325687931   Step 1:     The force   com.test.Account    INFO

После:

    TimeStamp       Formatted   Message     Logger_Name         Level_String
1   1321325688174   Step 2:     Then stop   com.test.Account    INFO
    1321325687931   Step 1:     The force   com.test.Account    INFO

Спасибо.

1 Ответ

0 голосов
/ 03 февраля 2012

Я не знаю ни одного существующего аппендиста, который бы делал это, но это не так сложно сделать самостоятельно.Вам нужно будет реализовать свой собственный класс appender, который расширяет AppenderBase и настроить SiftingAppender для его использования.

Внутри вашего нового CachingSqlAppender (или как вы его называете) вам придется обрабатыватьвременное кэширование всех запросов внутри вашего аппендера, а затем через некоторый заранее заданный интервал запишите их все.

Кажется, однако, что это может быть трудной задачей, чтобы правильно рассчитать время, потому что вам придется выяснить, какЕсли ваш аппендер ждет другого события, прежде чем выполнять вставку, он должен быть как минимум короче, чем срок жизни, который SiftingAppender предоставляет создаваемым им аддендерам.

...