Я думаю, что мотивация желания архитектора обернуть оболочку (то есть SLF4J) состоит в том, чтобы изолировать ваше приложение от SLF4J. Очевидно, что вызов API SLF4J из вашего приложения создает зависимость от SLF4J. Однако одинаково законно хотеть применять принцип изоляции неоднократно, как обсуждено ниже. Это напоминает мне вопрос Ричарда Докинза: если Бог создал вселенную, то кто создал Бога?
В самом деле, вы также можете применить принцип изоляции к оболочке, которая обертывает SLF4J. Причиной изоляции было бы плохо служить, если бы оболочка SLF4J была чем-то хуже SLF4J. Хотя это возможно, для обертки довольно редко сравнивать или превосходить оригинал. SWT может быть приведен в качестве заслуживающего внимания контрпримера. Тем не менее, SWT является значительным проектом со значительной стоимостью. Более того, SLF4J-оболочка по определению зависит от SLF4J. У него обязательно должен быть тот же общий API. Если в будущем появится новый и значительно отличающийся API-интерфейс ведения журнала, код, использующий обертку, будет столь же трудным для перехода на новый API-интерфейс, как и код, использующий SLF4J напрямую. Таким образом, оболочка вряд ли будет защищать ваш код в будущем, но сделает его более тяжелым, добавив дополнительную косвенность.
Короче говоря, даже если у вас нет ничего лучше, вы не должны тратить свое время на обертывание SLF4J, потому что добавленная стоимость вашей обертки гарантированно будет близка к нулю.
Тема также обсуждается в разделе SLF4J FAQ .