Поскольку вы хотите, чтобы это было в ваших журналах ошибок вместе с трассировкой стека (или близко к ней), вам, вероятно, потребуется Filter
.
Реализуйте метод doFilter()
, чтобы проверять и регистрировать вызывающий URL для каждого запроса.Я дал пример кода ниже.
Получив доступ к объекту HttpServletRequest
, вы можете вызывать любой из его методов. См. getRequestURI()
и getMethod()
, которые вам нужны.
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException
{
HttpServletRequest hsr = (HttpServletRequest) request;
String incomingUrl=hsr.getRequestURI(); // fetch URL
String method =hsr.getMethod(); // fetch GET/POST method
logger.debug ("The caller was " + incomingUrl + method); // Send the output to any logger which you have defined
chain.doFilter(request, response);
}
Я предполагаю, что у вас есть регистратор, и вы можете отправить вывод в файл журнала, который вы хотите.
Отобразите это Filter
на URL-шаблон, такой как /mywebservice
в web.xml
, чтобы он не вызывался для других запросов, а только для вашего веб-сервиса.
<filter>
<filter-name>Logging_URL_Filter</filter-name>
<filter-class>com.mysite.URLFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Logging_URL_Filter</filter-name>
<url-pattern>/mywebservice</url-pattern>
</filter-mapping>