Как красиво распечатать HttpServletRequest и HttpServletResponse - PullRequest
2 голосов
/ 02 апреля 2011

Я хотел бы добавить ведение журнала запросов и ответов в веб-приложение Java, которое я запускаю в Tomcat 6. Цель - создать файл журнала с выводом, подобным тому, который отображал бы Wireshark.Например:

GET / HTTP/1.1
Host: www.bing.com
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

Я подумал, что лучшим подходом будет использование фильтра для захвата входящего запроса HttpServletRequest и обтекания HttpServletResponse, чтобы можно было захватить содержимое ответа.

Однако однаждыУ меня есть HttpServletRequest и HttpServletResponse, есть ли стандартный способ довольно распечатать эти объекты, как они появились на проводе?

Ответы [ 2 ]

3 голосов
/ 02 апреля 2011

Tomcat поддерживает так называемый Log Valve - с небольшим количеством форматирования вы можете достичь того, что вы хотите.

Также Logback Access модульстремится обеспечить ту же функциональность, но с использованием библиотеки Logback.

0 голосов
/ 02 апреля 2011

Я не знаю, можете ли вы отображать заголовки точно так, как они будут отправлены, но если вы включите клапан демпфера запросов Tomcat, вы увидите все отправленные и полученные заголовки.

...