SLF4J и Commons Loggin предназначены для одной цели - легко сменить библиотеку для логинга.
Существуен некоторое количество библиотек :
JDK logging utils,
log4j,
Logback,
x4juli,
Simple Log.
С помощью SLF4J и Commons Loggin легко переклчаться о содной библиотеки на другую
Эти библиотеки предоставляют общий API и перенаправляют сообщения в зависимости от выбранного фреймвока (фасад
для логирования).
Часто меня спрашивают зачем нужно поддерживать в одном проекте много фреймворков - достаточно выбрать один и им пользоваться. Менять же не зачем.
Это утверждение справедливо если вы пишите проект для конечного пользователя. Если вы пишите библиотеку то конечный фреймворк будет выбирать другой программист - который использует эту библиотеку. Причём если в проекте есть библиотеки которые логируют в log4j и в JDK logging utils напрямую то тогда придётся конфигурировать и log4j и JDK logging utils.
Тоесть:
Eсли вы пишите конечный продукт - выбирайте либо log4j либо JDK logging utils.
Eсли пишите пишете библиотеку которая будет применяться в разных проектах используйте slf4j.
Кроме того следует заметить что JDK logging utils, log4j и Commons Logging - библиотеки довольно старые - они
появились ещё до jdk 1.5. SLF4J - довольно новая библиотека. Поэтому в ней исправлены недостатки и подводные
камни
более старых библиотек: