エラーページは次のように構成されています。
<error-page>
<error-code>404</error-code>
<location>/common/general-error.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/common/general-error.jsp</location>
</error-page>
General-error.jsp :
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page isErrorPage="true" %>
<%
String referer = request.getHeader("Referer");
if (referer != null && !"null".equals(referer) && !referer.contains("googleads.g.doubleclick.net/pagead")) {
Logger.getLogger(this.getClass().getName()).severe("GENERAL ERROR MESSAGE: requestUrl= " + request.getRequestURI() + "?" + request.getQueryString()
+ ", referer:" + referer);
}
if (exception != null) {
Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, "ERROR CAUSE:" + exception.getMessage(), exception);
}
どうやら、1 秒あたり約 20 のリクエストを取得する Web アプリケーションでは、ほとんどのログにexception
. ほとんどの場合、 nullexception
です。変だと思います。
これの根本的な理由は何ですか?それが重要な場合は、グラスフィッシュを使用しています。
ところで、リファラーは正しく出力され、ログからのスナップショット:
[#|2013-10-31T02:32:55.903+0100|SEVERE|glassfish3.1.2|org.apache.jsp.common.general_002derror_jsp|_ThreadID=67;_ThreadName=Thread-2;|GENERAL ERROR MESSAGE: requestUrl= /LivingCost/common/general-error.jsp?null, referer:http://www.priceline.com/delta-grand-okanagen-resort-and-conference-centre-kelowna-british-columbia-BC-144934-hd.hotel-reviews-hotel-guides|#]
[#|2013-10-31T02:37:23.471+0100|SEVERE|glassfish3.1.2|org.apache.jsp.common.general_002derror_jsp|_ThreadID=21;_ThreadName=Thread-2;|GENERAL ERROR MESSAGE: requestUrl= /LivingCost/common/general-error.jsp?null, referer:http://www.numbeo.com/cost-of-living/country_result.jsp?country=Taiwan|#]
[#|2013-10-31T02:37:23.663+0100|SEVERE|glassfish3.1.2|org.apache.jsp.common.general_002derror_jsp|_ThreadID=37;_ThreadName=Thread-2;|GENERAL ERROR MESSAGE: requestUrl= /LivingCost/common/general-error.jsp?null, referer:http://www.numbeo.com/cost-of-living/country_result.jsp?country=Taiwan|#]