私は Java の世界に慣れていないので、安らかな Javax Web サービス アプリケーションをデバッグする必要があります。
一部のページでは例外が発生し、それらは正しくログに記録されますが、コードを呼び出したページの URL をログとスタック トレースに記録したいと考えています。
GET および POST 情報も重要です。
出来ますか?
私は Java の世界に慣れていないので、安らかな Javax Web サービス アプリケーションをデバッグする必要があります。
一部のページでは例外が発生し、それらは正しくログに記録されますが、コードを呼び出したページの URL をログとスタック トレースに記録したいと考えています。
GET および POST 情報も重要です。
出来ますか?
スタックトレースと一緒に(またはそれに近い)エラーログにこれが必要なので、おそらく。が必要です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-patternにマップして、他のリクエストでは呼び出されず、Webサービスでのみ呼び出されるようにします。/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>
はい... AccessLogValveを使用します。
たとえば、でc:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\server.xml
、次のようなものを<Host>
要素に追加します。
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs/access-logs/" prefix="localhost_access_log."
suffix=".log"
pattern="%h %l %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %T"
resolveHosts="false"/>
%フィールドについては、ドキュメントを参照してください。たとえば、GETおよびPOST情報を要求しました。メソッドは、%r(または%m)フィールドで示されます。クエリパラメータが必要な場合、それらはGETのクエリ文字列(%q)の一部になります。
上記の情報は、指定したアクセスログに記録されます。エラーが発生するたびに(そして発生した場合にのみ)この情報をエラーログに記録するように求めている場合:一部のコンポーネントはすでにそれを実行していますが、それ以外の方法で発生させる方法がわかりません。エラーが発生し、URLが指定されていない場合は、エラーログとアクセスログのタイムスタンプを使用して、2つを関連付けます。
さまざまな機能のロギングの粒度を設定できます。Tomcatでのロギングを参照してください。これにより、発生するエラーに関連する場合と関連しない場合がある、より多くの情報を取得できます。