1

Groovy で記述され、Tomcat 6.0 に groovlet としてデプロイされた小さなプロジェクトがあります。私の問題は、すべての受信リクエストを監視し、各リクエストのカスタム ロギングを実行する必要があることです。

最初に、必要なものを出力する短いコードを各クラスに含めることを考えましたが、Tomcat が各受信 HTTP 要求をカスタム ログ クラスに送信/複製して、好みに合わせて解析し、さらにいくつかのことを実行できる可能性があると考えました。

そうすることは可能ですか?もしそうなら、どのように?

PS: Tomcat はオリジナルでなければなりません - 変更やカスタム コンパイルはありません。

ありがとうございました。

4

1 に答える 1

2

ロギングを行うカスタムフィルタを追加できます。

フィルタの実装例を次に示します。

public class YourFilter implements Filter {

    public void init(FilterConfig filterConfig) throws ServletException {
        // do your initialization here
    }

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
        throws IOException, ServletException {
        // do your custom logging here
    }

    public void destroy() {
        // do whats necessary on end of life
    }
}

web.xml 内でフィルターを構成/アクティブ化します。

...
<filter>
    <filter-name>yourFilter</filter-name>
    <filter-class>org.example.YourFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>yourFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>  
...
于 2012-04-30T18:53:37.007 に答える