Без использования оператора log.error невозможно перенаправить вывод в файл журнала через конфигурацию log4j2 xml. Тем не менее, есть один способ оптимизировать это, обрабатывая ваши исключения централизованно в одном месте, вместо того, чтобы делать это многократно в коде.
Написать отдельный класс, который в конечном итоге будет обрабатывать все исключения, вы можете использовать @ExceptionHandler(Exception.class)
, это обработает все исключения, в этом вы можете перехватить исключение и выйти из полной трассировки стека, используя log.error(e)
. Аннотирование этого класса с помощью @ControllerAdvice(<all_pckages_you_want_cover>)
будет гарантировать, что всякий раз, когда возникает необработанное исключение, оно в конце концов перехватывается и регистрируется.
Ссылка: https://dzone.com/articles/global-exception-handling-with-controlleradvice
PS: Если вы спрашиваете об обработанных исключениях, они в любом случае будут обрабатываться пользователем, поэтому вы добавляете одну строку для их регистрации в блоке catch.