Пиша библиотека, която събира различни функции, които ще използвам в различни приложения. Искам да генерира лог отчети, видими за потребителя на библиотеката, т.е. ако създавам приложение и използвам библиотеката, искам библиотеката да генерира журнал отчети, видими за мен. Как да направя това? Тъй като регистрационният файл ще бъде конфигуриран от разработчика на приложението, как моята библиотека ще разбере как да влезе?
Логер за Java библиотека
Отговори (3)
Ако разработвате библиотека, която другите ще включат в своето приложение, трябва да използвате фасада за регистриране. В противен случай принуждавате потребителите на вашата библиотека да конфигурират и включат рамката за регистриране, която сте избрали в допълнение към рамката, която са избрали за своето приложение.
Например, ако използвате log4j, но програмистът, използващ вашата библиотека, използва logback, той ще трябва да включи конфигурационен файл log4j и log4j jar (или вземете други мерки), за да направите библиотеката си щастлива.
Фасадите за регистриране решават този проблем (от Apache Commons Logging):
Когато пишете библиотека, е много полезно да регистрирате информация. Въпреки това има много внедрявания на регистриране и една библиотека не може да наложи използването на конкретно такова върху цялостното приложение, от което библиотеката е част.
Пакетът Logging е ултратънък мост между различни реализации на регистриране. Библиотека, която използва общия API за регистриране, може да се използва с всяка реализация на регистриране по време на изпълнение. Commons-logging идва с поддръжка за редица популярни реализации на регистриране, а писането на адаптери за други е сравнително проста задача.
Или мотивите от SLF4J:
Простата фасада за регистриране за Java или (SLF4J) служи като проста фасада или абстракция за различни рамки за регистриране, напр. java.util.logging, log4j и logback, което позволява на крайния потребител да включи желаната рамка за регистриране по време на разгръщане.
Кандидатите за дървени фасади са:
Лично аз бих препоръчал SLF4J (с Вход).
Стандартните решения за това са:
- Log4J: http://logging.apache.org/log4j/
- SLF4J: http://www.slf4j.org/
- JDK вграден регистратор: https://docs.oracle.com/javase/8/docs/technotes/guides/logging/overview.html
Всички те ще ви позволят да конфигурирате местоположението на регистрационния файл чрез конфигурация.