1 package org.openecomp.sdc.common.log.elements;
3 import org.apache.commons.lang3.StringUtils;
4 import org.onap.logging.ref.slf4j.ONAPLogConstants;
5 import org.openecomp.sdc.common.log.api.ILogConfiguration;
6 import org.openecomp.sdc.common.log.api.ILogFieldsHandler;
7 import org.openecomp.sdc.common.log.enums.EcompErrorSeverity;
8 import org.openecomp.sdc.common.log.enums.EcompLoggerErrorCode;
9 import org.openecomp.sdc.common.log.enums.LogLevel;
10 import org.openecomp.sdc.common.log.enums.LogMarkers;
11 import org.slf4j.Logger;
12 import org.slf4j.MarkerFactory;
14 import java.util.ArrayList;
15 import java.util.Arrays;
16 import java.util.Collections;
17 import java.util.List;
19 public class LoggerError extends LoggerBase {
20 private static ArrayList<String> mandatoryFields = new ArrayList<>(Arrays.asList(
21 ONAPLogConstants.MDCs.REQUEST_ID,
22 ONAPLogConstants.MDCs.SERVICE_NAME,
23 ILogConfiguration.MDC_ERROR_CATEGORY,
24 ILogConfiguration.MDC_ERROR_CODE));
26 public static final String defaultServiceName = "SDC catalog";
28 LoggerError(ILogFieldsHandler ecompMdcWrapper, Logger logger) {
29 super(ecompMdcWrapper, MarkerFactory.getMarker(LogMarkers.ERROR_MARKER.text()), logger);
33 public List<String> getMandatoryFields() {
34 return Collections.unmodifiableList(mandatoryFields);
38 public LoggerError setKeyRequestId(String keyRequestId) {
39 return (LoggerError) super.setKeyRequestId(keyRequestId);
43 public LoggerError startTimer() {
48 public LoggerError clear() {
49 ecompLogFieldsHandler.removeErrorCategory();
50 ecompLogFieldsHandler.removeErrorDescription();
51 ecompLogFieldsHandler.removeErrorCode();
55 public void log(LogLevel logLevel,
56 EcompLoggerErrorCode errorCodeEnum,
59 String message, Object...params) {
60 fillFieldsBeforeLogging(logLevel, errorCodeEnum, serviceName, targetEntity, null);
61 super.log(logLevel, message, params);
64 public void log(LogLevel logLevel,
65 EcompLoggerErrorCode errorCodeEnum,
67 ErrorLogOptionalData errorLogOptionalData,
70 fillFieldsBeforeLogging(logLevel, errorCodeEnum, serviceName,
71 errorLogOptionalData.getTargetEntity(), errorLogOptionalData.getTargetServiceName());
72 super.log(logLevel, description, params);
75 private void fillFieldsBeforeLogging(LogLevel logLevel, EcompLoggerErrorCode errorCodeEnum, String serviceName, String targetEntity, String targetServiceName) {
77 ecompLogFieldsHandler.setErrorCode(errorCodeEnum.getErrorCode());
78 ecompLogFieldsHandler.setErrorCategory(logLevel.name());
80 ecompLogFieldsHandler.setTargetEntity(targetEntity);
81 ecompLogFieldsHandler.setTargetServiceName(targetServiceName);
83 if (StringUtils.isEmpty(ecompLogFieldsHandler.getServiceName())) {
84 ecompLogFieldsHandler.setServiceName(serviceName);
87 setKeyRequestIdIfNotSetYet();
90 public void log(EcompErrorSeverity errorSeverity,
91 EcompLoggerErrorCode errorCodeEnum,
94 String message, Object... params) {
95 log(convertFromSeverityErrorLevel(errorSeverity), errorCodeEnum, serviceName, targetEntity, message, params);
98 public void log(LogLevel logLevel,
99 EcompLoggerErrorCode errorCodeEnum,
101 String message, Object...params) {
102 log(logLevel, errorCodeEnum, serviceName, (String)null, message, params);
105 public void log(LogLevel logLevel,
106 EcompLoggerErrorCode errorCodeEnum,
109 log(logLevel, errorCodeEnum, serviceName, message);
113 public void log(LogLevel logLevel, String message, Object...params) {
114 log(logLevel, EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR, defaultServiceName, (String)null, message, params);
117 public void log(LogLevel logLevel, String message, Throwable throwable) {
118 log(logLevel, createErrorMessage(message, throwable));
121 public void log(LogLevel logLevel, String message) {
122 log(logLevel, EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR, defaultServiceName, (String)null, message);
125 public void logInfo(LogLevel logLevel, String message, Object... params) {
126 log(logLevel, EcompLoggerErrorCode.SUCCESS, defaultServiceName, (String)null, message, params);
129 private LogLevel convertFromSeverityErrorLevel(EcompErrorSeverity severityLevel) {
130 switch(severityLevel) {
132 return LogLevel.INFO;
134 return LogLevel.FATAL;
136 return LogLevel.ERROR;
138 return LogLevel.WARN;
140 return LogLevel.ERROR;