diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2018-01-31 14:32:34 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2018-01-31 14:43:31 +0100 |
commit | 69c62babfda24d3fb46eb2337469a1fcfe64fc66 (patch) | |
tree | 9c32142ecf1ea61dfd7e15f9a1077ca4037d7a66 /jdisc_http_service | |
parent | 2c25a02adbe644b3f50dc44252c6b61974d0c8d6 (diff) |
Catch exceptions from AccessLogRequestLog
Diffstat (limited to 'jdisc_http_service')
-rw-r--r-- | jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java index 063bb35b63e..850e61f1842 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; * and our own configurable access logging in different formats provided by {@link AccessLog}. * * @author bakksjo + * @author bjorncs */ public class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog { @@ -48,24 +49,29 @@ public class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog @Override public void log(final Request request, final Response response) { - final AccessLogEntry accessLogEntryFromServletRequest = (AccessLogEntry) request.getAttribute( - JDiscHttpServlet.ATTRIBUTE_NAME_ACCESS_LOG_ENTRY); - final AccessLogEntry accessLogEntry; - if (accessLogEntryFromServletRequest != null) { - accessLogEntry = accessLogEntryFromServletRequest; - } else { - accessLogEntry = new AccessLogEntry(); - populateAccessLogEntryFromHttpServletRequest(request, accessLogEntry); - } - - final long startTime = request.getTimeStamp(); - final long endTime = System.currentTimeMillis(); - accessLogEntry.setTimeStamp(startTime); - accessLogEntry.setDurationBetweenRequestResponse(endTime - startTime); - accessLogEntry.setReturnedContentSize(response.getContentCount()); - accessLogEntry.setStatusCode(response.getStatus()); + try { + final AccessLogEntry accessLogEntryFromServletRequest = (AccessLogEntry) request.getAttribute( + JDiscHttpServlet.ATTRIBUTE_NAME_ACCESS_LOG_ENTRY); + final AccessLogEntry accessLogEntry; + if (accessLogEntryFromServletRequest != null) { + accessLogEntry = accessLogEntryFromServletRequest; + } else { + accessLogEntry = new AccessLogEntry(); + populateAccessLogEntryFromHttpServletRequest(request, accessLogEntry); + } - accessLog.log(accessLogEntry); + final long startTime = request.getTimeStamp(); + final long endTime = System.currentTimeMillis(); + accessLogEntry.setTimeStamp(startTime); + accessLogEntry.setDurationBetweenRequestResponse(endTime - startTime); + accessLogEntry.setReturnedContentSize(response.getContentCount()); + accessLogEntry.setStatusCode(response.getStatus()); + + accessLog.log(accessLogEntry); + } catch (Exception e) { + // Catching any exceptions here as it is unclear how Jetty handles exceptions from a RequestLog. + logger.log(Level.SEVERE, "Failed to log access log entry: " + e.getMessage(), e); + } } /* |