在Tomcat的Catalina错误日志中显示URL

Lou*_*ule 4 java tomcat error-logging

我是Java世界的新手,我需要调试一个宁静的Javax Web Service应用程序.

有些触发异常,它们被正确地记录,但我想有一个调用的代码,我的日志里面的页面的URL,以及堆栈跟踪.

GET和POST信息也很重要.

可能吗?

Jos*_*seK 7

由于您希望在错误日志中以及(或接近)堆栈跟踪中使用它,因此您可能需要一个Filter.

实现doFilter()方法以检查并记录每个请求的调用URL.我在下面给出了一些示例代码.

一旦你获得了HttpServletRequest对象,你可以调用任何它methods.See的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);
}
Run Code Online (Sandbox Code Playgroud)

我假设你有一个记录器,你可以将输出发送到你想要的日志文件.

这个地图Filter上的url-pattern样/mywebserviceweb.xml,这样它不会呼吁其他请求,但只在您的Web服务.

<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>
Run Code Online (Sandbox Code Playgroud)