aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java
diff options
context:
space:
mode:
authorvempo <vitaliy.emporopulo@amdocs.com>2018-01-08 20:59:19 +0200
committerVitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com>2018-01-09 13:41:15 +0000
commit1c1edf2e7b1ddef504d8b075b2763e0b0d83a2aa (patch)
tree9860b1a7eae0962db44d61118bae24eea8dc8d8b /openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java
parent6a96c39bf51c02fef0b35bba8b9e1430a18cbd2b (diff)
Added logging context service, refactoring
Change-Id: Ib040d4579107b60c8da2c7a6da829f49c1cd8dd4 Issue-ID: SDC-772 Signed-off-by: vempo <vitaliy.emporopulo@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/SLF4JLoggerCreationService.java236
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/context/MDCPropagationService.java70
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/logback/EventTypeDiscriminator.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/BaseMDCCopyingWrapper.java53
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/MDCCallableWrapper.java46
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/MDCRunnableWrapper.java45
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/Markers.java (renamed from openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/Markers.java)6
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/SLF4JLoggerWrapper.java222
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/SLF4JLoggingServiceProvider.java85
9 files changed, 457 insertions, 308 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/SLF4JLoggerCreationService.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/SLF4JLoggerCreationService.java
deleted file mode 100644
index bc896a91fc..0000000000
--- a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/SLF4JLoggerCreationService.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright © 2016-2017 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;
-
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerCreationService;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author evitaliy
- * @since 13/09/2016.
- */
-public class SLF4JLoggerCreationService implements LoggerCreationService {
-
- @Override
- public Logger getLogger(String className) {
- return new SLF4JWrapper(className);
- }
-
- @Override
- public Logger getLogger(Class<?> clazz) {
- return new SLF4JWrapper(clazz);
- }
-
- private class SLF4JWrapper implements Logger {
-
- private final org.slf4j.Logger logger;
-
- SLF4JWrapper(Class<?> clazz) {
- logger = LoggerFactory.getLogger(clazz);
- }
-
- SLF4JWrapper(String className) {
- logger = LoggerFactory.getLogger(className);
- }
-
- @Override
- public String getName() {
- return logger.getName();
- }
-
- @Override
- public boolean isMetricsEnabled() {
- return logger.isInfoEnabled(Markers.METRICS);
- }
-
- @Override
- public void metrics(String msg) {
- logger.info(Markers.METRICS, msg);
- }
-
- @Override
- public void metrics(String msg, Object arg) {
- logger.info(Markers.METRICS, msg, arg);
- }
-
- @Override
- public void metrics(String msg, Object arg1, Object arg2) {
- logger.info(Markers.METRICS, msg, arg1, arg2);
- }
-
- @Override
- public void metrics(String msg, Object... arguments) {
- logger.info(Markers.METRICS, msg, arguments);
- }
-
- @Override
- public void metrics(String msg, Throwable t) {
- logger.info(Markers.METRICS, msg, t);
- }
-
- @Override
- public boolean isAuditEnabled() {
- return logger.isInfoEnabled(Markers.AUDIT);
- }
-
- @Override
- public void audit(String msg) {
- logger.info(Markers.AUDIT, msg);
- }
-
- @Override
- public void audit(String msg, Object arg) {
- logger.info(Markers.AUDIT, msg, arg);
- }
-
- @Override
- public void audit(String msg, Object arg1, Object arg2) {
- logger.info(Markers.AUDIT, msg, arg1, arg2);
- }
-
- @Override
- public void audit(String msg, Object... arguments) {
- logger.info(Markers.AUDIT, msg, arguments);
- }
-
- @Override
- public void audit(String msg, Throwable t) {
- logger.info(Markers.AUDIT, msg, t);
- }
-
- @Override
- public boolean isDebugEnabled() {
- return logger.isDebugEnabled();
- }
-
- @Override
- public void debug(String msg) {
- logger.debug(msg);
- }
-
- @Override
- public void debug(String format, Object arg) {
- logger.debug(format, arg);
- }
-
- @Override
- public void debug(String format, Object arg1, Object arg2) {
- logger.debug(format, arg1, arg2);
- }
-
- @Override
- public void debug(String format, Object... arguments) {
- logger.debug(format, arguments);
- }
-
- @Override
- public void debug(String msg, Throwable t) {
- logger.debug(msg, t);
- }
-
- @Override
- public boolean isInfoEnabled() {
- return logger.isInfoEnabled();
- }
-
- @Override
- public void info(String msg) {
- logger.info(msg);
- }
-
- @Override
- public void info(String format, Object arg) {
- logger.info(format, arg);
- }
-
- @Override
- public void info(String format, Object arg1, Object arg2) {
- logger.info(format, arg1, arg2);
- }
-
- @Override
- public void info(String format, Object... arguments) {
- logger.info(format, arguments);
- }
-
- @Override
- public void info(String msg, Throwable t) {
- logger.info(msg, t);
- }
-
- @Override
- public boolean isWarnEnabled() {
- return logger.isWarnEnabled();
- }
-
- @Override
- public void warn(String msg) {
- logger.warn(msg);
- }
-
- @Override
- public void warn(String format, Object arg) {
- logger.warn(format, arg);
- }
-
- @Override
- public void warn(String format, Object... arguments) {
- logger.warn(format, arguments);
- }
-
- @Override
- public void warn(String format, Object arg1, Object arg2) {
- logger.warn(format, arg1, arg2);
- }
-
- @Override
- public void warn(String msg, Throwable t) {
- logger.warn(msg, t);
- }
-
- @Override
- public boolean isErrorEnabled() {
- return logger.isErrorEnabled();
- }
-
- @Override
- public void error(String msg) {
- logger.error(msg);
- }
-
- @Override
- public void error(String format, Object arg) {
- logger.error(format, arg);
- }
-
- @Override
- public void error(String format, Object arg1, Object arg2) {
- logger.error(format, arg1, arg2);
- }
-
- @Override
- public void error(String format, Object... arguments) {
- logger.error(format, arguments);
- }
-
- @Override
- public void error(String msg, Throwable t) {
- logger.error(msg, t);
- }
- }
-}
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/context/MDCPropagationService.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/context/MDCPropagationService.java
deleted file mode 100644
index 131b8db263..0000000000
--- a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/context/MDCPropagationService.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright © 2016-2017 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.context;
-
-import org.openecomp.sdc.logging.api.context.ContextPropagationService;
-import org.slf4j.MDC;
-
-import java.util.Map;
-
-/**
- * Propagates the <a href="http://www.slf4j.org/manual.html#mdc">SLF4J Mapped Diagnostic Context (MDC)</a>
- * of a thread onto a runnable created by that thread, so that the context is available when the runnable is executed
- * in a new thread.
- *
- * @author evitaliy
- * @since 12/09/2016.
- */
-public class MDCPropagationService implements ContextPropagationService {
-
- public Runnable create(Runnable task) {
- return new MDCCopyingWrapper(task);
- }
-
- private static class MDCCopyingWrapper implements Runnable {
-
- private final Runnable task;
- private final Map<String, String> context;
-
- private MDCCopyingWrapper(Runnable task) {
- this.task = task;
- this.context = MDC.getCopyOfContextMap();
- }
-
- @Override
- public void run() {
-
- Map<String, String> oldContext = MDC.getCopyOfContextMap();
- replaceMDC(this.context);
-
- try {
- task.run();
- } finally {
- replaceMDC(oldContext);
- }
- }
-
- private static void replaceMDC(Map<String, String> context) {
-
- if (context == null) {
- MDC.clear();
- } else {
- MDC.setContextMap(context);
- }
- }
- }
-}
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/logback/EventTypeDiscriminator.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/logback/EventTypeDiscriminator.java
index 97fc2871de..b6f8cfa8ff 100644
--- a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/logback/EventTypeDiscriminator.java
+++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/logback/EventTypeDiscriminator.java
@@ -19,7 +19,7 @@ package org.openecomp.sdc.logging.logback;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.sift.AbstractDiscriminator;
-import org.openecomp.sdc.logging.Markers;
+import org.openecomp.sdc.logging.slf4j.Markers;
import org.slf4j.Marker;
/**
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/BaseMDCCopyingWrapper.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/BaseMDCCopyingWrapper.java
new file mode 100644
index 0000000000..a963542906
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/BaseMDCCopyingWrapper.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright © 2016-2017 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 org.slf4j.MDC;
+
+import java.util.Map;
+
+/**
+ * @author EVITALIY
+ * @since 08 Jan 18
+ */
+abstract class BaseMDCCopyingWrapper {
+
+ private final Map<String, String> context;
+
+ BaseMDCCopyingWrapper() {
+ this.context = MDC.getCopyOfContextMap();
+ }
+
+ final Map<String, String> replace() {
+ Map<String, String> old = MDC.getCopyOfContextMap();
+ replaceMDC(this.context);
+ return old;
+ }
+
+ final void revert(Map<String, String> old) {
+ replaceMDC(old);
+ }
+
+ private static void replaceMDC(Map<String, String> context) {
+
+ if (context == null) {
+ MDC.clear();
+ } else {
+ MDC.setContextMap(context);
+ }
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/MDCCallableWrapper.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/MDCCallableWrapper.java
new file mode 100644
index 0000000000..9cb67dee4c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/MDCCallableWrapper.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright © 2016-2017 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.Map;
+import java.util.concurrent.Callable;
+
+/**
+ * @author EVITALIY
+ * @since 08 Jan 18
+ */
+class MDCCallableWrapper<V> extends BaseMDCCopyingWrapper implements Callable<V> {
+
+ private final Callable<V> task;
+
+ MDCCallableWrapper(Callable<V> task) {
+ super();
+ this.task = task;
+ }
+
+ @Override
+ public V call() throws Exception {
+
+ Map<String, String> oldContext = replace();
+
+ try {
+ return task.call();
+ } finally {
+ revert(oldContext);
+ }
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/MDCRunnableWrapper.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/MDCRunnableWrapper.java
new file mode 100644
index 0000000000..f1a6986fec
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/MDCRunnableWrapper.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright © 2016-2017 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.Map;
+
+/**
+ * @author EVITALIY
+ * @since 08 Jan 18
+ */
+class MDCRunnableWrapper extends BaseMDCCopyingWrapper implements Runnable {
+
+ private final Runnable task;
+
+ MDCRunnableWrapper(Runnable task) {
+ super();
+ this.task = task;
+ }
+
+ @Override
+ public void run() {
+
+ Map<String, String> oldContext = replace();
+
+ try {
+ task.run();
+ } finally {
+ revert(oldContext);
+ }
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/Markers.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/Markers.java
index 1416a9651f..7d2d846097 100644
--- a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/Markers.java
+++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/Markers.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.openecomp.sdc.logging;
+package org.openecomp.sdc.logging.slf4j;
import org.slf4j.Marker;
import org.slf4j.MarkerFactory;
@@ -41,6 +41,10 @@ import org.slf4j.MarkerFactory;
*/
public class Markers {
+ private Markers() {
+ // prevent instantiation
+ }
+
public static final Marker AUDIT = MarkerFactory.getMarker("AUDIT");
public static final Marker METRICS = MarkerFactory.getMarker("METRICS");
}
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/SLF4JLoggerWrapper.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/SLF4JLoggerWrapper.java
new file mode 100644
index 0000000000..5d223450bd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/SLF4JLoggerWrapper.java
@@ -0,0 +1,222 @@
+/*
+ * Copyright © 2016-2017 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 org.openecomp.sdc.logging.api.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author EVITALIY
+ * @since 08 Jan 18
+ */
+class SLF4JLoggerWrapper implements Logger {
+
+ private final org.slf4j.Logger logger;
+
+ SLF4JLoggerWrapper(Class<?> clazz) {
+ logger = LoggerFactory.getLogger(clazz);
+ }
+
+ SLF4JLoggerWrapper(String className) {
+ logger = LoggerFactory.getLogger(className);
+ }
+
+ @Override
+ public String getName() {
+ return logger.getName();
+ }
+
+ @Override
+ public boolean isMetricsEnabled() {
+ return logger.isInfoEnabled(Markers.METRICS);
+ }
+
+ @Override
+ public void metrics(String msg) {
+ logger.info(Markers.METRICS, msg);
+ }
+
+ @Override
+ public void metrics(String msg, Object arg) {
+ logger.info(Markers.METRICS, msg, arg);
+ }
+
+ @Override
+ public void metrics(String msg, Object arg1, Object arg2) {
+ logger.info(Markers.METRICS, msg, arg1, arg2);
+ }
+
+ @Override
+ public void metrics(String msg, Object... arguments) {
+ logger.info(Markers.METRICS, msg, arguments);
+ }
+
+ @Override
+ public void metrics(String msg, Throwable t) {
+ logger.info(Markers.METRICS, msg, t);
+ }
+
+ @Override
+ public boolean isAuditEnabled() {
+ return logger.isInfoEnabled(Markers.AUDIT);
+ }
+
+ @Override
+ public void audit(String msg) {
+ logger.info(Markers.AUDIT, msg);
+ }
+
+ @Override
+ public void audit(String msg, Object arg) {
+ logger.info(Markers.AUDIT, msg, arg);
+ }
+
+ @Override
+ public void audit(String msg, Object arg1, Object arg2) {
+ logger.info(Markers.AUDIT, msg, arg1, arg2);
+ }
+
+ @Override
+ public void audit(String msg, Object... arguments) {
+ logger.info(Markers.AUDIT, msg, arguments);
+ }
+
+ @Override
+ public void audit(String msg, Throwable t) {
+ logger.info(Markers.AUDIT, msg, t);
+ }
+
+ @Override
+ public boolean isDebugEnabled() {
+ return logger.isDebugEnabled();
+ }
+
+ @Override
+ public void debug(String msg) {
+ logger.debug(msg);
+ }
+
+ @Override
+ public void debug(String format, Object arg) {
+ logger.debug(format, arg);
+ }
+
+ @Override
+ public void debug(String format, Object arg1, Object arg2) {
+ logger.debug(format, arg1, arg2);
+ }
+
+ @Override
+ public void debug(String format, Object... arguments) {
+ logger.debug(format, arguments);
+ }
+
+ @Override
+ public void debug(String msg, Throwable t) {
+ logger.debug(msg, t);
+ }
+
+ @Override
+ public boolean isInfoEnabled() {
+ return logger.isInfoEnabled();
+ }
+
+ @Override
+ public void info(String msg) {
+ logger.info(msg);
+ }
+
+ @Override
+ public void info(String format, Object arg) {
+ logger.info(format, arg);
+ }
+
+ @Override
+ public void info(String format, Object arg1, Object arg2) {
+ logger.info(format, arg1, arg2);
+ }
+
+ @Override
+ public void info(String format, Object... arguments) {
+ logger.info(format, arguments);
+ }
+
+ @Override
+ public void info(String msg, Throwable t) {
+ logger.info(msg, t);
+ }
+
+ @Override
+ public boolean isWarnEnabled() {
+ return logger.isWarnEnabled();
+ }
+
+ @Override
+ public void warn(String msg) {
+ logger.warn(msg);
+ }
+
+ @Override
+ public void warn(String format, Object arg) {
+ logger.warn(format, arg);
+ }
+
+ @Override
+ public void warn(String format, Object... arguments) {
+ logger.warn(format, arguments);
+ }
+
+ @Override
+ public void warn(String format, Object arg1, Object arg2) {
+ logger.warn(format, arg1, arg2);
+ }
+
+ @Override
+ public void warn(String msg, Throwable t) {
+ logger.warn(msg, t);
+ }
+
+ @Override
+ public boolean isErrorEnabled() {
+ return logger.isErrorEnabled();
+ }
+
+ @Override
+ public void error(String msg) {
+ logger.error(msg);
+ }
+
+ @Override
+ public void error(String format, Object arg) {
+ logger.error(format, arg);
+ }
+
+ @Override
+ public void error(String format, Object arg1, Object arg2) {
+ logger.error(format, arg1, arg2);
+ }
+
+ @Override
+ public void error(String format, Object... arguments) {
+ logger.error(format, arguments);
+ }
+
+ @Override
+ public void error(String msg, Throwable t) {
+ logger.error(msg, t);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/SLF4JLoggingServiceProvider.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/SLF4JLoggingServiceProvider.java
new file mode 100644
index 0000000000..015875bdc8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/SLF4JLoggingServiceProvider.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright © 2016-2017 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 org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.provider.LoggingServiceProvider;
+import org.slf4j.MDC;
+
+import java.util.Objects;
+import java.util.concurrent.Callable;
+
+/**
+ * @author evitaliy
+ * @since 13/09/2016.
+ */
+public class SLF4JLoggingServiceProvider implements LoggingServiceProvider {
+
+ private static final String KEY_CANNOT_BE_NULL = "Key cannot be null";
+
+ @Override
+ public Logger getLogger(String className) {
+ Objects.requireNonNull(className, "Name cannot be null");
+ return new SLF4JLoggerWrapper(className);
+ }
+
+ @Override
+ public Logger getLogger(Class<?> clazz) {
+ Objects.requireNonNull(clazz, "Class cannot be null");
+ return new SLF4JLoggerWrapper(clazz);
+ }
+
+ @Override
+ public void put(String key, String value) {
+ Objects.requireNonNull(key, KEY_CANNOT_BE_NULL);
+ MDC.put(key, value);
+ }
+
+ @Override
+ public String get(String key) {
+ Objects.requireNonNull(key, KEY_CANNOT_BE_NULL);
+ return MDC.get(key);
+ }
+
+ @Override
+ public void remove(String key) {
+ Objects.requireNonNull(key, KEY_CANNOT_BE_NULL);
+ MDC.remove(key);
+ }
+
+ @Override
+ public void clear() {
+ MDC.clear();
+ }
+
+ @Override
+ public Runnable toRunnable(Runnable runnable) {
+ Objects.requireNonNull(runnable, "Runnable cannot be null");
+ return new MDCRunnableWrapper(runnable);
+ }
+
+ @Override
+ public <V> Callable<V> toCallable(Callable<V> callable) {
+ Objects.requireNonNull(callable, "Runnable cannot be null");
+ return new MDCCallableWrapper<>(callable);
+ }
+
+ @Override
+ public String toString() {
+ return this.getClass().getName();
+ }
+}