Если вы разрабатываете библиотеку , которую другие будут включать в свое приложение, вы должны использовать фасад для ведения журнала . В противном случае вы заставляете пользователей вашей библиотеки настраивать и включать выбранную вами среду ведения журналов в дополнение к платформе , которую они выбрали для своего приложения.
Например, если вы используете log4j , но разработчик, использующий вашу библиотеку, использует logback , он должен будет включить файл конфигурации log4j и jar log4j (или принять другие меры ) чтобы сделать вашу библиотеку счастливой.
Логирование Фасады решают эту проблему (из Apache Commons Logging):
При написании библиотеки очень полезно регистрировать информацию. Однако существует множество реализаций ведения журналов, и библиотека не может навязать использование конкретного приложения для всего приложения, частью которого является библиотека.
Пакет журналирования - это ультратонкий мост между различными реализациями журналирования. Библиотека, которая использует API регистрации общего пользования, может использоваться с любой реализацией ведения журнала во время выполнения. Commons-logging поставляется с поддержкой ряда популярных реализаций регистрации, а написание адаптеров для других - достаточно простая задача.
Или рассуждения из SLF4J:
Простой фасад ведения журнала для Java или (SLF4J) служит простым фасадом или абстракцией для различных сред ведения журнала, например, java.util.logging, log4j и logback, позволяющие конечному пользователю подключить желаемую инфраструктуру ведения журнала в развертывание время.
Кандидатами на вырубку фасадов являются:
Лично я бы порекомендовал SLF4J (с Logback ).