summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2018-01-31 14:32:34 +0100
committerBjørn Christian Seime <bjorncs@oath.com>2018-01-31 14:43:31 +0100
commit69c62babfda24d3fb46eb2337469a1fcfe64fc66 (patch)
tree9c32142ecf1ea61dfd7e15f9a1077ca4037d7a66 /jdisc_http_service
parent2c25a02adbe644b3f50dc44252c6b61974d0c8d6 (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.java40
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);
+ }
}
/*