Как зарегистрировать пользовательские фильтры обратного вызова, используя фрагментный фрагмент OSGi?

У меня есть собственный фильтр под названием foo.bar.MatcherFilter,

Я объявил это в logback.xml,

<appender ....>
  <filter class="foo.bar.MatcherFilter">
    <contains>java.net.ConnectException: Connection refused</contains>
  </filter>
</appender>

Во-первых, когда MatcherFilter входит в комплект моего приложения, Logback будет сообщать ClassNotFoundException,

Так я в комплекте foo.bar.MatcherFilter как связка фрагментов,

Export-Package: foo.bar.*
Fragment-Host: ch.qos.logback.core

Тем не менее я получаю то же самое ClassNotFoundException,

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

Регистрация пользовательского фильтра с использованием фрагмента OSGi, это можно сделать?

1 ответ

Поскольку Регистратор инициализируется LoggerContext и Logback использует загрузчик классов Context класс, который вы, вероятно, должны сделать Fragment-Host как ch.qos.logback.classic который содержит LoggerContext учебный класс

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