Существует ли Log4J Layout / Formatter, который обрезает трассировки стека для исключений?
Вопрос
Я ищу Log4J Layout / Formatter, который помогает мне обрезать трассировки стека в исключениях, немного лучше, чем значения по умолчанию. То, что выполнение стека находится где-то ниже main (), совершенно очевидно и мне не нужно знать, и что исключение произошло глубоко внутри какой-то другой библиотеки, на самом деле я ничего не могу с этим поделать.
Я хотел бы, чтобы макет обрезал трассировку стека, скажем, за последние 5 вызовов методов метода в моем собственном коде, идентифицированные с помощью jar-файла, пакета или чего-то еще.
Есть ли что-то в этом роде, или я сам должен написать магию?
Решение
Я тоже пытался найти это, но не нашел ничего удовлетворительного, поэтому я написал собственный ThrowableRenderer, который удаляет посторонние кадры стека. Я открыл исходный код для использования другими. Посмотрите на мой блог ; Вы можете найти ссылку на код там.
Другие советы
Я задал похожий вопрос (о полное подавление трассировки стека некоторое время назад.
К сожалению, для этого нет настроек, для этого нужно создать подкласс PatternLayout.
"ex" или "исключение" Слово преобразования в logback-classic (преемник log4j) поддерживает печать указанного количества строк трассировки стека. "Ex" слово конверсии задокументировано с помощью остальных слов конверсии . Вам нужно немного прокрутить вниз.
Если вам нужна дополнительная информация по этой теме, обратитесь в список рассылки logback-пользователя.
Есть три способа сделать это:
<Ол>Вы можете написать собственный Appender, который имеет специальную логику, которая вам нужна. Это может быть хорошим способом.