summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src
diff options
context:
space:
mode:
authorolegb <olegb@amdocs.com>2018-02-19 16:11:35 +0200
committerVitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com>2018-03-04 09:31:51 +0000
commit313dce44ae1ab2328c33a6448e87b3fbb81b15f0 (patch)
tree6957ccea17705639cc4b5b278e57252a2e677f58 /openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src
parentf86741b693d54f0cb074028c484835f42c991923 (diff)
Changed audit API of logger
Change-Id: I3e091ba7ce592fae536da1eaf28a220284b846c3 Issue-ID: SDC-772 Signed-off-by: olegb <olegb@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src')
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/SLF4JLoggerWrapper.java70
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/main/java/org/openecomp/sdc/logging/slf4j/SLF4JLoggingServiceProvider.java19
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/LogFileCreationTest.java (renamed from openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/api/LoggerTest.java)64
-rw-r--r--openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/aspects/MetricsAspectTest.java23
4 files changed, 118 insertions, 58 deletions
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
index 5d223450bd..416af8fff1 100644
--- 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
@@ -1,5 +1,5 @@
/*
- * Copyright © 2016-2017 European Support Limited
+ * 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.
@@ -16,8 +16,15 @@
package org.openecomp.sdc.logging.slf4j;
+import org.openecomp.sdc.logging.api.AuditData;
import org.openecomp.sdc.logging.api.Logger;
import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import static org.openecomp.sdc.logging.slf4j.SLF4JLoggingServiceProvider.PREFIX;
/**
* @author EVITALIY
@@ -25,6 +32,16 @@ import org.slf4j.LoggerFactory;
*/
class SLF4JLoggerWrapper implements Logger {
+ private static final String BEGIN_TIMESTAMP = PREFIX + "BeginTimestamp";
+ private static final String END_TIMESTAMP = PREFIX + "EndTimestamp";
+ private static final String ELAPSED_TIME = PREFIX + "ElapsedTime";
+ private static final String STATUS_CODE = PREFIX + "StatusCode";
+ private static final String RESPONSE_CODE = PREFIX + "ResponseCode";
+ private static final String RESPONSE_DESCRIPTION = PREFIX + "ResponsDescription";
+ private static final String CLIENT_IP_ADDRESS = PREFIX + "ClientIpAddress";
+
+ //The specified format presents time in UTC formatted per ISO 8601, as required by ONAP logging guidelines
+ private final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
private final org.slf4j.Logger logger;
SLF4JLoggerWrapper(Class<?> clazz) {
@@ -76,28 +93,43 @@ class SLF4JLoggerWrapper implements Logger {
}
@Override
- public void audit(String msg) {
- logger.info(Markers.AUDIT, msg);
- }
+ public void audit(AuditData data) {
- @Override
- public void audit(String msg, Object arg) {
- logger.info(Markers.AUDIT, msg, arg);
- }
+ if (data == null) {
+ return;
+ }
- @Override
- public void audit(String msg, Object arg1, Object arg2) {
- logger.info(Markers.AUDIT, msg, arg1, arg2);
- }
+ MDC.put(BEGIN_TIMESTAMP, DATE_FORMAT.format(new Date(data.getStartTime())));
+ MDC.put(END_TIMESTAMP, DATE_FORMAT.format(new Date(data.getEndTime())));
+ MDC.put(ELAPSED_TIME, String.valueOf(data.getEndTime() - data.getStartTime()));
- @Override
- public void audit(String msg, Object... arguments) {
- logger.info(Markers.AUDIT, msg, arguments);
- }
+ if (data.getStatusCode() != null) {
+ MDC.put(STATUS_CODE, data.getStatusCode() == AuditData.StatusCode.COMPLETE ? "COMPLETE" : "ERROR");
+ }
- @Override
- public void audit(String msg, Throwable t) {
- logger.info(Markers.AUDIT, msg, t);
+ if (data.getResponseCode() != null) {
+ MDC.put(RESPONSE_CODE, data.getResponseCode());
+ }
+
+ if (data.getResponseDescription() != null) {
+ MDC.put(RESPONSE_DESCRIPTION, data.getResponseDescription());
+ }
+
+ if (data.getClientIpAddress() != null) {
+ MDC.put(CLIENT_IP_ADDRESS, data.getClientIpAddress());
+ }
+
+ try {
+ logger.info(Markers.AUDIT, "");
+ } finally {
+ MDC.remove(BEGIN_TIMESTAMP);
+ MDC.remove(END_TIMESTAMP);
+ MDC.remove(ELAPSED_TIME);
+ MDC.remove(STATUS_CODE);
+ MDC.remove(RESPONSE_CODE);
+ MDC.remove(RESPONSE_DESCRIPTION);
+ MDC.remove(CLIENT_IP_ADDRESS);
+ }
}
@Override
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
index d2fb0b0226..86b2297371 100644
--- 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
@@ -1,12 +1,12 @@
/*
- * Copyright © 2016-2017 European Support Limited
+ * 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.
@@ -16,20 +16,25 @@
package org.openecomp.sdc.logging.slf4j;
+import java.util.Objects;
+import java.util.concurrent.Callable;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.spi.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 {
+ public static final String PREFIX = "";
private static final String KEY_CANNOT_BE_NULL = "Key cannot be null";
+ private static final String REQUEST_ID = PREFIX + "RequestId";
+ private static final String SERVICE_NAME = PREFIX + "ServiceName";
+ private static final String PARTNER_NAME = PREFIX + "PartnerName";
+
+ private static final String[] ALL_FIELDS = { REQUEST_ID, SERVICE_NAME, PARTNER_NAME };
@Override
public Logger getLogger(String className) {
@@ -69,12 +74,14 @@ public class SLF4JLoggingServiceProvider implements LoggingServiceProvider {
@Override
public Runnable copyToRunnable(Runnable runnable) {
Objects.requireNonNull(runnable, "Runnable cannot be null");
+ // TODO: Copy only the fields this service is responsible for
return new MDCRunnableWrapper(runnable);
}
@Override
public <V> Callable<V> copyToCallable(Callable<V> callable) {
Objects.requireNonNull(callable, "Runnable cannot be null");
+ // TODO: Copy only the fields this service is responsible for
return new MDCCallableWrapper<>(callable);
}
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/api/LoggerTest.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/LogFileCreationTest.java
index 1359a1ff2a..4595e567c8 100644
--- a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/api/LoggerTest.java
+++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/LogFileCreationTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2016-2017 European Support Limited
+ * 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.
@@ -14,20 +14,16 @@
* limitations under the License.
*/
-package org.openecomp.sdc.logging.api;
+package org.openecomp.sdc.logging;
+import org.openecomp.sdc.logging.api.AuditData;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
import org.testng.annotations.Test;
-/**
- * This is only for manual testing - change {@link #ENABLED} to 'true'
- *
- * @author evitaliy
- * @since 13/09/2016.
- */
-public class LoggerTest {
-
+public class LogFileCreationTest {
private static final boolean ENABLED = false; // for manual testing change to 'true'
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerTest.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(LogFileCreationTest.class);
@Test(enabled = ENABLED)
public void testMetrics() {
@@ -36,7 +32,8 @@ public class LoggerTest {
@Test(enabled = ENABLED)
public void testAudit() {
- LOGGER.audit("This is audit");
+ SpyAuditData auditData = new SpyAuditData();
+ LOGGER.audit(auditData);
}
@Test(enabled = ENABLED)
@@ -58,4 +55,47 @@ public class LoggerTest {
public void testError() {
LOGGER.error("This is error");
}
+
+ private class SpyAuditData implements AuditData {
+ @Override
+ public long getStartTime() {
+
+ return 0;
+
+ }
+
+ @Override
+ public long getEndTime(){
+
+ return 0;
+ }
+
+ @Override
+ public StatusCode getStatusCode(){
+
+ return null;
+
+ }
+
+ @Override
+ public String getResponseCode(){
+
+ return null;
+
+ }
+
+ @Override
+ public String getResponseDescription(){
+
+ return null;
+
+ }
+
+ @Override
+ public String getClientIpAddress(){
+
+ return null;
+
+ }
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/aspects/MetricsAspectTest.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/aspects/MetricsAspectTest.java
index 42cbdcef14..4d3d6be34b 100644
--- a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/aspects/MetricsAspectTest.java
+++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-core/src/test/java/org/openecomp/sdc/logging/aspects/MetricsAspectTest.java
@@ -21,6 +21,7 @@ import org.aspectj.lang.Signature;
import org.aspectj.lang.reflect.SourceLocation;
import org.aspectj.runtime.internal.AroundClosure;
import org.easymock.EasyMock;
+import org.openecomp.sdc.logging.api.AuditData;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.powermock.api.easymock.PowerMock;
@@ -296,27 +297,7 @@ public class MetricsAspectTest extends PowerMockTestCase {
}
@Override
- public void audit(String var1) {
- throw new RuntimeException("Not implemented");
- }
-
- @Override
- public void audit(String var1, Object var2) {
- throw new RuntimeException("Not implemented");
- }
-
- @Override
- public void audit(String var1, Object var2, Object var3) {
- throw new RuntimeException("Not implemented");
- }
-
- @Override
- public void audit(String var1, Object... var2) {
- throw new RuntimeException("Not implemented");
- }
-
- @Override
- public void audit(String var1, Throwable throwable) {
+ public void audit(AuditData var1) {
throw new RuntimeException("Not implemented");
}