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