Grails на Tomcat - Как записать необработанный HTTP-запрос / ответ - PullRequest
3 голосов
/ 12 января 2012

Я не смог найти способ настроить мое фиктивное приложение Grails для регистрации всех HTTP-запросов и ответов, принятых / сгенерированных сервером Grails (фактически - Tomcat). Возможно ли это?

Ответы [ 3 ]

3 голосов
/ 12 января 2012

Другим вариантом будет использование встроенной регистрации доступа Tomcat.

http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve

Я использую это сам, и это вполне настраивается.

Как настроить tomcat 6

 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>

Добавьте это в конец вашей конфигурации server.xml под тегом «Хост».

3 голосов
/ 12 марта 2014

вы можете использовать плагин Grails: https://github.com/TouK/grails-httplogger или фильтр Tomcat.
Если вы используете Tomcat 7, это RequestDumperFilter. Я предпочитаю RequestDumperFilter.

Короче говоря:

Установить шаблоны Grails

    grails install-templates

Отредактируйте файл web.xml и добавьте RequestDumperFilter

<filter>
<filter-name>requestdumper</filter-name>
<filter-class>org.apache.catalina.filters.RequestDumperFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>requestdumper</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>

Отредактируйте раздел log4j в Config.groovy и добавьте

debug   'org.apache.catalina.filters.RequestDumperFilter'

Этого должно быть достаточно.

Если вам нужна дополнительная информация, здесь вы найдете подробные инструкции.

0 голосов
/ 12 января 2012

Такое ведение журнала может быть легко реализовано как фильтр - либо фильтр Grails (описание этих параметров приведено в http://grails.org/doc/latest/guide/theWebLayer.html#filters), либо как стандартный фильтр сервлетов (пример можно найти здесь: http://www.java2s.com/Code/Java/Servlets/LogFilter.htm).

Если вы выберете второй вариант, вам придется изменить web.xml, чтобы включить ваш фильтр. Для этого выполните grails install-templates. Это скопирует стандартный каталог web.xml в templates/WEB-INF в вашем проекте, и вы можете изменить его там.

...