Развивая тему использования Spring-фреймворка поговорим сегодня об одной из самых важных для разработчика вещей - о логгировании. Для ведения логов многие Java-программисты используют замечательную и очень мощную библиотеку Log4J.
Поэтому сегодня мы поговорим о двух вещах - о том, как подключить log4j к веб-приложению, основаному на Spring и как использовать эту библиотеку для того, чтобы посмотреть, что происходит внутри фреймворка.
Для того, чтобы подключить log4j к веб-приложению необходимо указать спрингу где лежит файл с настройками библиотеки. Для этого в дескриптор развертывания (web.xml) необходимо добавить строки, устанавливающие параметр сервлет-контекста log4jConfigLocation и подключить Log4jConfigListener. Выглядит все это примерно так:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
После этого можно корректно использовать log4j в своих классах.
Если хочется посмотреть, что происходит в самом Spring фреймворке возникают сложности. Дело в том, что spring использует не log4j, а commons-logging. Но commons-logging обладает приятной особенностью - она позволяет делегировать логгирование log4j. Для такого делегирования необходимо в classpath приложения (в случае веб-приложения - в /WEB-INF/classes/) создать файл commons-logging.properties, содержащий следующую строку:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
Ну и конечно же, нужно не забыть в log4j.properties указать нужный уровень логгирования для Spring, например такой:
log4j.logger.org.springframework=debug
Все, после этого можно увидеть много нового и интересного о том, как работает Spring-фреймворк.
Если есть вопросы или пожелания - прошу оставлять их в комментариях.
Понравилось сообщение - подпишись на блог