Существуют ли какие-либо среды Appender log4j или slf4j, которые предоставляют дополнительные приложения? - PullRequest
2 голосов
/ 17 августа 2011

Хотя основные библиотеки log4j и slf4j поставляются с множеством полезных вещей, и я мог бы создать свою собственную, но мне было интересно, есть ли какие-нибудь библиотеки, которые поставляются с интересными приложениями.

Большинство приложений, кажется,быть мостами, обеспечивающими некоторую связь с конкретной службой, такой как отправка сообщений по электронной почте или обновление журнала событий NT.Я имею в виду логгеры, которые более абстрактны и не похожи на промежуточное ПО, но одинаково полезны для наблюдателей живой системы.

Сумасшедшая идея приложения, которое, я думаю, может быть полезным

Ведение журнала часто полезно, но может быть затруднено из-за большого количества сообщений, которые действительно не нужны, потому что связанный запрос успешно завершен.У меня была одна идея: не будет полезно записывать в журнал только те сообщения http, которые выдают какое-то исключение во время обработки.Если запрос не сработал, то ничего не будет добавлено в журнал.Естественно, такого рода приложениям потребуется что-то, что поможет контролировать это.

BufferControl {
   FLUSH_NOW, // flush everything now in the buffer
   FLLUSH, // flush everything when BufferingLogger.commit() is called.
   CLEAR, // clear everything before
   CLEAR_ALL; /// all past and future messages are ignored
   IGNORE_AFTER; // ignore messages after this event.
   IGNORE_BEFORE, // ignore messages before
   CONTINUE, // just continue...
   etc etc..
}

// implements could tell the bufferingappender to log messages because some exception was thrown etc.    
LoggingEventWatcher {
   BufferControl look(LoggingEvent, BufferingAppender);
}

// every logging event is passed to the logging event watcher which 
BufferingAppender {
   start();
   reset(); // throw away everything in the buffer
   commit(); // use returned BufferControl to flush or reset etc.
   flush(); // unconditionally flush all messages now.
}

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

Естественно, для сброса буфера и т. Д. Понадобятся некоторые смарты.

1 Ответ

4 голосов
/ 17 августа 2011

Logback - реализация slf4j, предоставляющая множество настраиваемых дополнений. http://logback.qos.ch/

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

Подробности здесь: http://logback.qos.ch/manual/filters.html

...