Обеспечение видимости логгеров log4j в нескольких приложениях, развернутых на одном сервере - PullRequest
0 голосов
/ 16 марта 2012

У меня есть приложение A.ear, которое включает в себя веб-приложение A.war.Я включил log4jAdmin.jsp в эту войну, чтобы динамически управлять уровнями журналирования во время выполнения для регистраторов, используемых в этом приложении.Я также развернул другое приложение B.ear в weblogic в том же экземпляре сервера.Это приложение также имеет свою долю регистраторов, определенных в своем собственном файле log4j.xml.Как сделать регистраторы приложения B.ear видимыми на странице log4jAdmin.jsp, которая является частью A.ear.Я использую weblogic 9.2.

Я знаю, что в соответствии с концепциями загрузчика классов каждое приложение имеет свой собственный загрузчик классов, и решение по перемещению связанных с log4j файлов (jar и xml) в общую папку домена, вероятно, сработало бы, но по независящим от меня причинам я не могусделайте это, так как A.ear, который является основным приложением Oracle (принадлежит к одному из их продуктов Communication Suite), выйдет из строя, если я пойду по этому пути.B.ear - это собственное приложение, разработанное мной, которое содержит плагины, представляющие собой не что иное, как корпоративные компоненты, вызываемые A.ear.

Так есть ли способ сделать регистраторы видимыми во всех развернутых приложениях, чтобы с помощью всего одного log4jAdmin.jsp я мог изменить их уровни ведения журнала?Я знаю, что я пытаюсь достичь действительно работы, потому что я заметил, что она работает в последней версии A.ear, выпущенной Oracle для WL 10.3.3.Регистраторы, определенные для B.ear, были видны на странице log4jAdmin.jsp в A.ear.Поэтому мне интересно, что нужно сделать, чтобы добиться тех же результатов с WL 9.2.

Любая помощь / подсказки будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 19 марта 2012

Я не работал с WebLogic, поэтому мой совет будет умозрительным и общего характера.

Поскольку схема иерархии загрузки классов определяется спецификацией EJB, я бы попытался развернуть как log4j, так и его конфигурацию как можно выше в иерархии. Большинство серверов приложений имеют каталог 'extension', куда вы можете поместить jar-файлы, видимые загрузчиком классов расширений, который имеет приоритет над всеми загрузчиками классов web / ear. Вы можете поместить туда log4j.jar и (важно!) Log4j.xml. Может быть необходимо упаковать файл log4j.xml в файл jar (я не знаю подробностей, относящихся к WL), так как загрузчики классов часто ищут только jar.

...