Подтвердить что ты не робот

Регистратор для библиотеки Java

Я пишу библиотеку, которая собирает различные функции, которые я буду использовать в разных приложениях. Я хочу, чтобы он генерировал операторы журналов, видимые для пользователя библиотеки, то есть, если я создаю приложение, и я использую библиотеку, я хочу, чтобы библиотека создавала видимые для меня операторы журналов. Как мне это сделать? Поскольку файл журнала будет настроен разработчиком приложения, как моя библиотека будет знать, как записывать журнал?

4b9b3361

Ответ 1

Если вы разрабатываете библиотеку, которую другие будут включать в свое приложение, вы должны использовать logging facade. В противном случае вы заставляете пользователей вашей библиотеки настраивать и включать структуру ведения журнала, которую вы выбрали , в дополнение к фреймворку, который они выбрали для своего приложения.

Например, если вы используете log4j, но разработчик, использующий вашу библиотеку, использует logback, он должен будет включить файл конфигурации log4j и банку log4j (или взять другие меры), чтобы сделать вашу библиотеку счастливой.

Logging Facades решают эту проблему (из журнала Apache Commons):

При написании библиотеки очень полезно записывать информацию. Однако существует множество реализаций ведения журнала, и библиотека не может навязывать использование конкретного приложения в общем приложении, частью которого является библиотека.

Пакет регистрации - это ультратонкий мост между различными реализациями протоколирования. Библиотека, использующая API регистрации общедоступных данных, может использоваться с любой реализацией протоколирования во время выполнения. Commons-logging поставляется с поддержкой нескольких популярных реализаций ведения журнала, а писать адаптеры для других - достаточно простая задача.

Или рассуждения из SLF4J:

Простой логический фасад для Java или (SLF4J) служит в качестве простого фасада или абстракции для различных фреймворков регистрации, например. java.util.logging, log4j и logback, позволяя конечному пользователю подключить требуемую структуру ведения журнала во время развертывания.

Кандидатами для регистрации фасадов являются:

Лично я бы рекомендовал SLF4JLogback).

Ответ 3

Местоположение вашего файла журнала устанавливается вне пакета, в конфигурации среды ведения журнала. Файл конфигурации обычно находится в пути к классам. Как это выглядит, зависит от используемой структуры ведения журнала - я рекомендую перейти с SLF4J и Logback.