Logback - SiftingAppender с внедренной БД Appender
Мне известно о 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 ответ
Я не знаю ни одного существующего аппендиата, который бы делал это, но это не так сложно сделать самому. Вам потребуется реализовать собственный класс appender, который расширяет AppenderBase, и настроить SiftingAppender для его использования.
Внутри вашего нового CachingSqlAppender (или как вы его называете) вам придется обрабатывать временное кэширование всех запросов внутри вашего аппендера, а затем через некоторый заранее заданный интервал выписывать их все.
Тем не менее, кажется, что это может быть трудной задачей для правильного выбора времени, потому что вам придется выяснить, как долго ваш аппендер ожидает другого события, прежде чем делать вставку, и он должен быть как минимум короче, чем срок службы SiftingAppender. дает appenders, которые он создает.