Logback включить фрагмент в контейнер OSGi

У меня есть проект a-conf с src/main/resources/logback/conf/a/CommonAppenders.xml файл:

<included>
    <appender name="FILE" class="FileAppender" />
</included>

Также у меня есть другой проект a-runable с logback.xml конфиг который импортирует CommonAppenders.xml:

<configuration>
    <!-- this is classpath import -->
    <include resource="logback/conf/a/CommonAppenders.xml" />
    ...
</configuration>

Я могу собрать a-runable в автономной банке со всеми зависимостями (a-conf является одним из них) или в комплекте OSGi. Когда я запускаю автономное приложение, все в порядке - файлы журнала отображаются так, как указано в CommonAppenders.xml, Но когда я запускаю контейнер OSGi, файлы журнала не создаются. Я думаю, что logback просто не может включать ресурс из classpath, потому что каждый пакет в контейнере OSGi имеет свои собственные загрузчики классов (logback использует ClassLoader.getResource() включить файл).

Я проверил Export-Package: logback.conf.a в a-conf.jar/META-INF/MANIFEST.MF (это делает плагин maven bundlor) - все в порядке. добавленной Import-Package: logback.conf.a в a-runable без эффекта.

Я понятия не имею, что я могу сделать (без кода, чтобы изменить, просто конфиги). Любая помощь приветствуется.

PS Я нашел подобную проблему здесь, но logback.xml уже в classpath и его собственные приложения работают нормально. Также у меня нет никаких FileNotFoundExceptions в существующих журналах.

1 ответ

Решение

По умолчанию, я считаю, что ошибки запуска Logback просто сбрасываются, если вы не настраиваете прослушиватель (но я могу помнить неправильно). Ключ вероятно, что a-conf должен быть Фрагментом пакета, который содержит logback.jar. Это то, что я сделал для моей связки, в которой есть несколько доморощенных приложений.

Если вы хотите увидеть установку, в которой Logback предварительно настроен для вывода ошибок запуска в контейнер OSGi, взгляните на Pax-Logger 1.7 - https://github.com/ops4j/org.ops4j.pax.logging/tree/master/pax-logging-logback

Другие вопросы по тегам