2013-09-11 3 views
2

Согласно Spring Doc API http://docs.spring.io/spring-framework/docs/current/javadoc-api/index.html?org/springframework/web/context/ContextLoaderListener.html -Почему ContextLoaderListener должен быть зарегистрирован после Log4jConfigListener

Это (ContextLoaderListener) слушатель должен быть зарегистрирован после Log4jConfigListener в web.xml

Я не получаю, почему Log4jConfigListener должен быть зарегистрирован первый?

ответ

4

Документация не погружается в детали относительно их заявленного предпочтения для этого заказа. Я бы предположил, что этот порядок рекомендуется для того, чтобы регистрация была настроена до регистрации ContextLoaderListener, что позволило бы своевременно регистрировать отладочные сообщения во время регистрации.

1

При использовании настраиваемой конфигурации log4j (например, для приложения log4j-app.xml) это необходимо загрузить перед другим. Если log4j будет загружаться с использованием глобального log4j.xml (или значений по умолчанию) вместо настраиваемого файла.

ContextLoaderListener (или многие другие классы) инициирует загрузку log4j, и в этом случае вы можете получить другую конфигурацию, как вы ожидали. Также с дополнительным риском Log4jConfigListener при завершении работы приложения, пытающегося уничтожить/закрыть глобальную систему log4j ... (Это может быть, если вы не отправляете log4j в своем приложении, но полагаетесь на свои серверы приложений, загруженные в версию log4j) ,

Смежные вопросы