В документации для slf4j говорится, что привязка происходит во время выполнения:
"SLF4J не полагается на какое-либо специальное оборудование загрузчика классов. Фактически, каждая привязка SLF4J жестко привязана во время компиляции, чтобы использовать одну и только одну конкретную структуру ведения журнала. Например, привязка slf4j-log4j12-1.7.5.jar привязывается во время компиляции, чтобы использовать log4j. В вашем коде, помимо slf4j-api-1.7.5.jar, вы просто отбрасываете одно и только одно привязку по вашему выбору в соответствующее место пути класса. Не помещайте более одного привязка к вашему пути к классу. Вот графическая иллюстрация общей идеи". http://www.slf4j.org/manual.html
Как это работает?