Обновление конфигурации ведения журнала PAX через ConfigurationAdmin
Я пытаюсь настроить pax-logging для вывода определенных журналов в определенный файл. Я видел, что это может быть достигнуто с помощью ConfigurationAdmin. Итак, я сделал следующее:
- Вставьте в план ссылку на сервис ConfigurationAdmin
- Спросите его для конфигурации с PID = org.ops4j.pax.logging
- Получите текущую конфигурацию и добавьте свойства для настройки appender и регистратора для моего пакета
- Вызовите Configuration.update(свойства)
Я вижу, как файл etc/org.ops4j.pax.logging.cfg обновляется и в него добавляются мои новые свойства. Но я не вижу нового файла, созданного для моего appender, и журналы из моего логгера больше не добавляются в karaf.log. Я могу как-то заставить его работать снова, коснувшись файла etc/org.ops4j.pax.logging.cfg, после чего создается новый appender, и я начинаю видеть записи в него. Похоже, это вызвано тем, что felix-fileinstall обнаруживает, что файл изменился, и, возможно, что-то повторно развертывает (не знаю, что)
Мои вопросы:
- Это правильный способ добавить аппендер программно и динамически? Мое приложение предназначено для распространения в виде файла kar с несколькими функциями, и я хочу, чтобы это происходило при запуске.
- Нужно ли делать что-то еще, кроме Configuration.update(properties), чтобы pax-logging учитывал изменения? Кажется, что-то меняется, потому что я больше не вижу свои журналы после инициализации пакета, но кажется, что appender не создан.
Я использую karaf 4.1.5 и pax-logging-log4j2 1.10.1
С уважением
Manuel