1 package org.openecomp.sdc.common.log.elements;
3 import org.apache.commons.lang3.StringUtils;
4 import org.openecomp.sdc.common.config.EcompErrorConfiguration;
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.EcompLoggerErrorCode;
8 import org.openecomp.sdc.common.log.enums.LogLevel;
9 import org.openecomp.sdc.common.log.enums.LogMarkers;
10 import org.slf4j.Logger;
11 import org.slf4j.MarkerFactory;
13 import java.util.ArrayList;
14 import java.util.Arrays;
15 import java.util.Collections;
16 import java.util.List;
18 public class LoggerError extends LoggerBase {
19 private static ArrayList<String> mandatoryFields = new ArrayList<>(Arrays.asList(
20 ILogConfiguration.MDC_KEY_REQUEST_ID,
21 ILogConfiguration.MDC_SERVICE_NAME,
22 ILogConfiguration.MDC_ERROR_CATEGORY,
23 ILogConfiguration.MDC_ERROR_CODE));
25 public static final String defaultServiceName = "SDC catalog";
27 LoggerError(ILogFieldsHandler ecompMdcWrapper, Logger logger) {
28 super(ecompMdcWrapper, MarkerFactory.getMarker(LogMarkers.ERROR_MARKER.text()), logger);
32 public List<String> getMandatoryFields() {
33 return Collections.unmodifiableList(mandatoryFields);
37 public LoggerError setKeyRequestId(String keyRequestId) {
38 return (LoggerError) super.setKeyRequestId(keyRequestId);
42 public LoggerError startTimer() {
47 public LoggerError clear() {
48 ecompLogFieldsHandler.removeErrorCategory();
49 ecompLogFieldsHandler.removeErrorDescription();
50 ecompLogFieldsHandler.removeErrorCode();
54 public void log(LogLevel logLevel,
55 EcompLoggerErrorCode errorCodeEnum,
58 String message, Object...params) {
59 fillFieldsBeforeLogging(logLevel, errorCodeEnum, serviceName, targetEntity);
60 super.log(logLevel, message, params);
63 private void fillFieldsBeforeLogging(LogLevel logLevel, EcompLoggerErrorCode errorCodeEnum, String serviceName, String targetEntity) {
65 ecompLogFieldsHandler.setErrorCode(errorCodeEnum.getErrorCode());
66 ecompLogFieldsHandler.setErrorCategory(logLevel.name());
67 if (!StringUtils.isEmpty(targetEntity)) {
68 //avoid overriding this parameter in MDC
69 ecompLogFieldsHandler.setTargetEntity(targetEntity);
71 if (StringUtils.isEmpty(ecompLogFieldsHandler.getServiceName())) {
72 ecompLogFieldsHandler.setServiceName(serviceName);
74 setKeyRequestIdIfNotSetYet();
77 public void log(EcompErrorConfiguration.EcompErrorSeverity errorSeverity,
78 EcompLoggerErrorCode errorCodeEnum,
81 String message, Object... params) {
82 log(convertFromSeverityErrorLevel(errorSeverity), errorCodeEnum, serviceName, targetEntity, message, params);
85 public void log(LogLevel logLevel,
86 EcompLoggerErrorCode errorCodeEnum,
88 String message, Object...params) {
89 log(logLevel, errorCodeEnum, serviceName, null, message, params);
92 public void log(LogLevel logLevel,
93 EcompLoggerErrorCode errorCodeEnum,
96 log(logLevel, errorCodeEnum, serviceName, message);
100 public void log(LogLevel logLevel, String message, Object...params) {
101 log(logLevel, EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR, defaultServiceName, null, message, params);
104 public void log(LogLevel logLevel, String message, Throwable throwable) {
105 log(logLevel, createErrorMessage(message, throwable));
108 public void log(LogLevel logLevel, String message) {
109 log(logLevel, EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR, defaultServiceName, null, message);
112 public void logInfo(LogLevel logLevel, String message, Object... params) {
113 log(logLevel, EcompLoggerErrorCode.SUCCESS, defaultServiceName, null, message, params);
116 private LogLevel convertFromSeverityErrorLevel(EcompErrorConfiguration.EcompErrorSeverity severityLevel) {
117 switch(severityLevel) {
119 return LogLevel.INFO;
121 return LogLevel.FATAL;
123 return LogLevel.ERROR;
125 return LogLevel.WARN;
127 return LogLevel.ERROR;