X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdbcapi%2Fresources%2FRequestTimeLogFilter.java;fp=src%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdbcapi%2Fresources%2FRequestTimeLogFilter.java;h=b2b98b63fbbd143558fe37ff6c71af299c274c03;hb=3e4946f538604b1621b845c72e582f917c275275;hp=0000000000000000000000000000000000000000;hpb=072b8c23fdfd43f1d2f5e7d0c4653f77fffed824;p=dmaap%2Fdbcapi.git diff --git a/src/main/java/org/onap/dmaap/dbcapi/resources/RequestTimeLogFilter.java b/src/main/java/org/onap/dmaap/dbcapi/resources/RequestTimeLogFilter.java new file mode 100644 index 0000000..b2b98b6 --- /dev/null +++ b/src/main/java/org/onap/dmaap/dbcapi/resources/RequestTimeLogFilter.java @@ -0,0 +1,55 @@ +/*- + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright (C) 2019 Nokia Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.dmaap.dbcapi.resources; + +import com.att.eelf.configuration.EELFLogger; +import java.time.Clock; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerRequestFilter; +import javax.ws.rs.container.ContainerResponseContext; +import javax.ws.rs.container.ContainerResponseFilter; +import org.onap.dmaap.dbcapi.logging.BaseLoggingClass; + +public class RequestTimeLogFilter extends BaseLoggingClass implements ContainerRequestFilter, ContainerResponseFilter { + + private final EELFLogger log; + private Clock clock; + + public RequestTimeLogFilter() { + this(auditLogger, Clock.systemDefaultZone()); + } + + RequestTimeLogFilter(EELFLogger logger, Clock clock) { + this.log = logger; + this.clock = clock; + } + + @Override + public void filter(ContainerRequestContext requestContext) { + requestContext.setProperty("start", clock.millis()); + } + + @Override + public void filter(ContainerRequestContext requestContext, ContainerResponseContext containerResponseContext) { + long startTime = (long) requestContext.getProperty("start"); + long elapsedTime = clock.millis() - startTime; + log.info("Request took {} ms", elapsedTime); + } +}