Требуется решение ошибок веб-приложения от Tomcat, пытающегося регистрировать события после удаления регистратора - PullRequest
0 голосов
/ 18 августа 2010

Окружающая среда: JSF 2.0, RichFaces 3.3.3, Facelets 1.1.15B1, Spring Framework 3.x, WebFlow 2.1, MyBatis 3.0.1, серверная часть Oracle 10/11 g, SLF4j в Log4j.Ну, это, вероятно, TMI, так как моя проблема - только проблема с журналированием, но лучше быть слишком тщательной, чем нет.

В любом случае ... Я просто настроил SLF4j & log4j, так что теперь все внутренние сообщения журнала Facelets загружаются вlog4j, и я действительно могу их увидеть.Кроме того, я настроил Tomcat на создание дампа в log4j вместо его пользовательской версии JULI.После этого все, казалось, работало замечательно .... пока я не закрыл приложение.

В середине процесса завершения работы мое приложение начало выводить ошибки влево и вправо, потому что (что имеет смысл) Tomcat пытается получить экземпляр регистратора ПОСЛЕ того, как пружина уже очистила компонент журналирования.

Кто-нибудь знаком с этим?Я предполагаю, что это должно быть распространенной проблемой для любого, кто использует Tomcat, используя нестандартный механизм регистрации.Как лучше всего обойти это?

Я подумал, может быть, если бы я просто поднял уровень журнала, то Tomcat даже не попытался бы регистрировать сообщения из-за уровня req.s, но проблема возникает, когда tomcat пытаетсяполучить экземпляр регистратора, чтобы он не работал.

1 Ответ

1 голос
/ 18 августа 2010

Я бы переместил Logger выше в пищевой цепи.

Я лично никогда не настраивал log4j с пружиной, полагаясь на собственный механизм настройки (и искал, где, черт возьми, он находит файл свойств, который он использует в процессе).

Если вы можете, вы можетерешите полностью удалить log4j из вашей войны и положитесь на log4j в общем пути к классам библиотеки tomcat.Тогда, конечно, вы находитесь в зависимости от конфигурации tomcat и не можете получить доступ к журналу изнутри вашего приложения, но он всегда присутствует в течение полного жизненного цикла вашего приложения.

...