Я встраиваю Apache Felix в свое приложение.Я хочу регистрировать каркасные события.Чтобы увидеть события фреймворка, происходящие в начале жизненного цикла фреймворка, я регистрирую FrameworkListener перед запуском фреймворка.Я также хочу использовать сервис регистрации для регистрации других событий.Суть в том, что служба журналов также доставляет каркасные события.Я не могу найти хороший способ избежать регистрации этих событий дважды, один раз при доставке в мой FrameworkListener, один раз при доставке через службу журналов.
Похоже, единственными решениями являются:
- Сравните сообщение LogEntry с сообщениями, указанными в отображении событий платформы (101.6.3 в спецификации 4.2).Это взломанный и не надежный, но он, вероятно, будет работать.
- Подождите, пока LogServiceReader станет доступным, а затем отмените регистрацию FrameworkListener.Это требует более сложного кода.В частности, я не могу просто использовать службу Event Admin для получения записей журнала.
Альтернатива заключается в том, чтобы вообще не регистрировать FrameworkListener, установить службу журнала в качестве первого пакета иПредположим, служба журналов будет надежно запущена перед любыми интересующими событиями.(Скажем, меня не волнует регистрация, например, регистрация службы журналов.) Но если возникает проблема с запуском службы журналов, эта проблема будет доставлена как FrameworkEvent и, таким образом, потеряна (исключение не выдается-уровень).Это было бы головной болью для диагностики.(Apache Felix действительно отправляет сообщения об ошибках в System.err, если служба журналов недоступна, но они не попадают в основной файл журнала моего приложения и поэтому могут быть пропущены.)
Возможно, решение этой проблемы заключается в следующем.подпрограмма запуска, которая запускает пакет службы журналов в явном виде (так что в случае сбоя возникает исключение) до запуска любых других пакетов.Я на правильном пути?Кажется, требуется большая осторожность, чтобы не допустить ошибок.Ранний этап запуска, на котором все ошибки появляются как исключения для верхнего уровня, представляется желательным.