diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/RequestContextProvider.java')
-rw-r--r-- | openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/RequestContextProvider.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/RequestContextProvider.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/RequestContextProvider.java new file mode 100644 index 0000000000..d79771c1c5 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/RequestContextProvider.java @@ -0,0 +1,55 @@ +/* + * Copyright © 2016-2018 European Support Limited + * + * 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. + */ + +package org.openecomp.sdc.logging.slf4j; + +import java.util.EnumMap; +import java.util.Map; +import org.openecomp.sdc.logging.api.ContextData; + +/** + * Maps request data sent to the context service to corresponding MDC fields. + * + * @author evitaliy + * @since 23 Mar 2018 + */ +class RequestContextProvider implements ContextProvider { + + private final ContextData data; + + RequestContextProvider(ContextData contextData) { + this.data = contextData; + } + + @Override + public Map<ContextField, String> values() { + + Map<ContextField, String> values = new EnumMap<>(ContextField.class); + + putIfNotNull(values, ContextField.REQUEST_ID, data.getRequestId()); + putIfNotNull(values, ContextField.SERVICE_NAME, data.getServiceName()); + putIfNotNull(values, ContextField.PARTNER_NAME, data.getPartnerName()); + + return values; + } + + private void putIfNotNull(Map<ContextField, String> values, ContextField field, String value) { + + if (value != null) { + values.put(field, value); + } + } +} |