Я запускаю несколько приложений Camel на основе весенней загрузки на одном и том же коте. В каждом приложении, развернутом на этом коте, я поместил определение компонента для создания LogbackLogQuery. Проблема в том, что на вкладке журнала hawtio отображается только журнал последних развернутых приложений. Я наткнулся на эту статью stackoverflow: Несколько приложений Camel регистрируются в одном hawtio, но она кажется немного устаревшей, и я не смог найти решение.
Я использую hawtio-default.war на том же коте, что и другие веб-приложения.
Tomcat: 10.1.19, Spring Boot: 3.2.4, Camel: 4.4.0, Hawtio: 4.0.0
Итак, мой вопрос: есть ли способ перехватить все журналы моих развернутых приложений Camel на основе весенней загрузки в hawtio?





Это интересный метод развертывания, но, к сожалению, в настоящее время Hawtio 4.0.0 ожидает только одно приложение Spring Boot для каждой JVM.
Проблема с LogbacklogQuery MBean заключается в том, что если вы не разделите несколько экземпляров MBeanServer, вы не сможете использовать несколько экземпляров MBean с уникальным именем для каждой JVM. Должна быть возможность определить несколько MBean-компонентов с именами:
hawtio:type=LogQuery,name=app1hawtio:type=LogQuery,name=app2hawtio:type=LogQuery,name=app3но в настоящее время интерфейсная часть плагина Logs подхватывает только первый из MBean-компонентов.
Если вы можете сообщить о проблеме в GitHub, команда Hawtio может рассмотреть возможность ее улучшения:
Другой вариант, который я проверил, — это создание модуля агрегатора журналов, который служит сборщиком jmx на tomcat. Все модули, имеющие отношение к бизнесу, регистрируют собственные MBeans на платформе tomcat и отправляют LoggingEvent через собственное приложение для журналирования. Агрегатор журналов регистрирует только один hawtio LogbackLogQuery. Единственным недостатком был процесс пересборки LoggingEventVO в LoggingEvent из-за того, что LogbackLogQuery хранит LoggingEvent, а не сериализуемый LoggingEventVO.