Я совершенно не понимаю, как правильно настроить регистратор в среде Java EE OSGi. Вот мои требования:
- Только 1 файл журнала на EBA (группировка пакетов)
- Несколько файлов журналов на сервер приложений (из-за нескольких EBA)
- Не хочу выполнять магию ClassLoader (это нормально, если библиотека, которую я использую, делает это, я просто не хочу ее писать)
- Необходимо чередовать файл журнала в конце дня и одновременно поддерживать только 7 файлов журнала.
- Предпочтительно не требуется создавать пакет журналов для каждого EBA. Ни один другой разработчик не купится, если я попрошу их написать собственное взаимодействие для ведения журналов для каждого приложения.
- Должен работать с WebSphere Application Server 8.5.5.
Сначала я попытался использовать SLF4j поверх log4j, как это делают другие наши приложения Java EE, однако ничто не смогло найти мои log4j.properties. Я пробовал варианты импорта SLF4j, а также имел проблемы, когда загрузка его в 1 пакете мешала его загрузке в другом.
Затем я заглянул в регистратор PAX, но, похоже, он ведет глобальный журнал, а не для EBA.
Попытка использовать OSGi LogService препятствует развертыванию моего пакета в WebSphere, плюс я не знаю, как я могу заставить его соответствовать моим требованиям.
Я нахожусь в точке, где единственный вариант, который я вижу, - это написать свой собственный пакет, который хранит реестр для пакета → файл журнала (используя FrameworkUtil.getBundle в клиентском классе) и реализует в нем полную структуру ведения журнала. Если у этого есть проблемы с изоляцией загрузчика классов, возможно, нажмите на EJB для фактического ведения журнала. Я действительно надеюсь, что это не единственное решение.
Может ли кто-нибудь указать мне на какую-то документацию, которая мне поможет??
Спасибо!