在 UrlRewriteFilter 之前打印访问日志 [英] Print the access logs before UrlRewriteFilter

查看:47
本文介绍了在 UrlRewriteFilter 之前打印访问日志的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个应用程序,目前我在其中使用了两个过滤器.

I have an application in which currently I am using two filters.

第一个是 UrlRewriteFilter,用于重写 url.

First one is UrlRewriteFilter which is for re-writing the url.

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    <init-param>
        <param-name>logLevel</param-name>
        <param-value>DEBUG</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

第二个是过滤器,它打印每个页面的性能以及 url.

Second is a filter which is printing the performance of each page, along with the url.

<filter>
    <filter-name>PerfLoggingFilter</filter-name>
    <filter-class>
        com.sia.saa.common.filter.PerfLoggingFilter
        </filter-class>
</filter>
<filter-mapping>
    <filter-name>PerfLoggingFilter</filter-name>
    <url-pattern>*.form</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>   

但在日志中只打印了重写的 URL,而不是原始 URL.
请提出一种方法,以便继续重写 URL,但在日志中只打印原始 URL.
注意:如果您需要其他详细信息,请发布问题.

But in the logs only the re-written URL is being printed and not the original url.
Please suggest a way so that URL re-writing can continue but in the logs only the original url is printed.
Note: Post questions in case you need other details.

推荐答案

由于 UrlRewriteFilter 使用 RequestDispatcher.forward(),我猜你可以在日志过滤器中获取原始请求 URL 为

Since UrlRewriteFilter uses RequestDispatcher.forward(), I guess you can obtain original request URLs in your logging filter as

request.getAttribute("javax.servlet.forward.request_uri")

以便您可以记录它们.

这篇关于在 UrlRewriteFilter 之前打印访问日志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆