Возможная причина в том, что varargs должен быть последним аргументом в сигнатуре, и было сложно добавить параметр Object (который предназначен для исключения), за которым следует параметр Object ....Согласно ответу @Berger кажется, что это было решено в версии SLF4J 1.6.0.Тем не менее, я решил ту же проблему по-разному.Я написал библиотеку с открытым исходным кодом MgntUtils (доступна из репозитория Maven Central и github).Одна из утилит там извлекает трассировку стека из Throwable как String.Также, опционально, эта утилита может отфильтровывать некоторые не относящиеся к делу части трассировки стека и делать ее очень сжатой и легко читаемой.Таким образом, в этом случае вы можете передать извлеченную трассировку стека вашему логгеру как часть varargs.Я нашел это очень удобным, особенно с отфильтрованной трассировкой стека.Это будет выглядеть так:
LOGGER.error("My message {} {}", MyStringParam, TextUtils.getStacktrace(e));
Вот ссылка на статью, в которой объясняется, где взять библиотеку и как ее использовать: MgntUtils Библиотека с открытым исходным кодом Библиотека поставляется с исходным кодоми Javadoc