Как я могу ограничить уровень электронных писем Logback SMTPAppender
, так, чтобы это послало бы мне по электронной почте самое большее один раз в n минуты?
Я имею, устанавливают мой вход согласно Logback appender, но я не вполне вижу как он быть настроенным или разделенным на подклассы для реализации этого.
Существует ли скрытая функция? Кто-то разрабатывал подкласс для обработки этого?
На основании документации кажется, что способ сделать это - написать EventEvaluator (см. пример 4.14 и 4.15), который смотрит на временную отметку для каждого события, чтобы принять событие только тогда, когда прошло "достаточно времени" с момента принятия последнего события.
Вы можете использовать System.currentTimeMillis, чтобы получить число, по которому можно произвести математические расчеты для вычисления разницы во времени. http://java.sun.com/javase/6/docs/api/java/lang/System.html#currentTimeMillis%28%29
Я предлагаю подавать элемент jira с запросом на эту возможность. Скорее всего, это будет реализовано, если только попросить.
.Как Торбьёрн, легко создать EventEvaluator
, который ограничивает скорость, с которой аппендер выстреливает сообщение.
Однако, я нашел Logback для поддержки DuplicateMessageFilter
, что решает мою проблему, вероятно, горьким способом: "DuplicateMessageFilter" заслуживает отдельной презентации. Этот фильтр обнаруживает дубликаты сообщений, и, помимо определенного количества повторений, сбрасывает повторные сообщения"