Java - группировка идентичных исключений в журналах

Есть ли какое-либо решение для регистрации с функцией группировки исключений? То, что я хочу достичь, - это когда какое-то исключение регистрируется, например, 100 раз за 10 секунд. Я не хочу регистрировать 100 стоп-трасс. Я хочу записать что-то вроде RuntimeException was thrown 100 times: single stack trace here. Было бы идеально, если бы что-то было интегрировано с log4j.

Ofc существует возможность создать некоторый фасад журнала с чередой исключений внутри, но, возможно, что-то уже реализовано.

Ответ 1

Обратите внимание на эту конструкцию обработчика журналов, которая группирует журналы для последующей отправки на адрес электронной почты.

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

Решение JUL основано (java.util.logging), но оно может послужить вам основой для создания собственного решения log4j с несколькими изменениями. Это сработало хорошо для меня. Надеюсь, что это поможет.