@Override protected void preprocess(IAccessEvent event) { event.prepareForDeferredProcessing(); } };
@Override public String convert(IAccessEvent accessEvent) { if (!isStarted()) { return "INACTIVE_REQUEST_PARAM_CONV"; } // This call should be safe, because the request map is cached beforehand final String[] paramArray = accessEvent.getRequestParameterMap().get(key); if (paramArray == null || paramArray.length == 0) { return "-"; } else if (paramArray.length == 1) { return paramArray[0]; } else { return Arrays.toString(paramArray); } } }
@Override protected Map<String, Object> toJsonMap(IAccessEvent event) { return new MapBuilder(timestampFormatter, customFieldNames, additionalFields, includes.size()) .addNumber("port", isIncluded(AccessAttribute.LOCAL_PORT), event::getLocalPort) .addNumber("contentLength", isIncluded(AccessAttribute.CONTENT_LENGTH), event::getContentLength) .addTimestamp("timestamp", isIncluded(AccessAttribute.TIMESTAMP), event.getTimeStamp()) .add("method", isIncluded(AccessAttribute.METHOD), event::getMethod) .add("protocol", isIncluded(AccessAttribute.PROTOCOL), event::getProtocol) .add("requestContent", isIncluded(AccessAttribute.REQUEST_CONTENT), event::getRequestContent) .add("remoteAddress", isIncluded(AccessAttribute.REMOTE_ADDRESS), event::getRemoteAddr) .add("remoteUser", isIncluded(AccessAttribute.REMOTE_USER), event::getRemoteUser) .addMap("headers", !requestHeaders.isEmpty(), () -> filterHeaders(event.getRequestHeaderMap(), requestHeaders)) .addMap("params", isIncluded(AccessAttribute.REQUEST_PARAMETERS), event::getRequestParameterMap) .addNumber("requestTime", isIncluded(AccessAttribute.REQUEST_TIME), event::getElapsedTime) .add("uri", isIncluded(AccessAttribute.REQUEST_URI), event::getRequestURI) .add("url", isIncluded(AccessAttribute.REQUEST_URL), event::getRequestURL) .add("pathQuery", isIncluded(AccessAttribute.PATH_QUERY), () -> event.getRequestURI() + event.getQueryString()) .add("remoteHost", isIncluded(AccessAttribute.REMOTE_HOST), event::getRemoteHost) .add("responseContent", isIncluded(AccessAttribute.RESPONSE_CONTENT), event::getResponseContent) .addMap("responseHeaders", !responseHeaders.isEmpty(), () -> filterHeaders(event.getResponseHeaderMap(), responseHeaders)) .add("serverName", isIncluded(AccessAttribute.SERVER_NAME), event::getServerName) .addNumber("status", isIncluded(AccessAttribute.STATUS_CODE), event::getStatusCode) .add("userAgent", isIncluded(AccessAttribute.USER_AGENT), () -> event.getRequestHeader(USER_AGENT)) .add("version", jsonProtocolVersion != null, jsonProtocolVersion) .build(); }
@Override protected long getTimestamp(IAccessEvent event) { return event.getTimeStamp(); }
@Override public String convert(IAccessEvent accessEvent) { String user = accessEvent.getRemoteUser(); if (user == null) { return IAccessEvent.NA; } else { return user; } }
@Override public String convert(IAccessEvent accessEvent) { return accessEvent.getMethod(); } }
@Override public String convert(IAccessEvent accessEvent) { return accessEvent.getRequestURL(); } }
@Override public String convert(IAccessEvent accessEvent) { return accessEvent.getProtocol(); } }
@Override public String convert(IAccessEvent accessEvent) { return accessEvent.getRemoteHost(); }
private long calculateElapsedTime() { if (serverAdapter.getRequestTimestamp() < 0) { return -1; } return getTimeStamp() - serverAdapter.getRequestTimestamp(); }
@Override public String convert(IAccessEvent accessEvent) { return accessEvent.getServerName(); } }
@Override public long getContentLength() { if (contentLength == SENTINEL) { if (httpResponse != null) { contentLength = serverAdapter.getContentLength(); return contentLength; } } return contentLength; }
@Override public String convert(IAccessEvent accessEvent) { return accessEvent.getResponseContent(); }
@Override public String convert(IAccessEvent accessEvent) { return accessEvent.getRequestContent(); }
public int getStatusCode() { if (statusCode == SENTINEL) { if (httpResponse != null) { statusCode = serverAdapter.getStatusCode(); } } return statusCode; }
void buildResponseHeaderMap() { if (responseHeaderMap == null) { responseHeaderMap = serverAdapter.buildResponseHeaderMap(); } }
@Override public Map<String, String> getRequestHeaderMap() { if (requestHeaderMap == null) { buildRequestHeaderMap(); } return requestHeaderMap; }
@Override protected long getTimestampAsMillis(IAccessEvent event) { return event.getTimeStamp(); }
@Override protected void postProcessEvent(IAccessEvent event) { event.prepareForDeferredProcessing(); }
@Override protected void postProcessEvent(IAccessEvent event) { event.prepareForDeferredProcessing(); }