Add Logging sdk
[vfc/nfvo/wfengine.git] / logging-sdk / src / main / java / org / openo / log / impl / InsertLogHandler.java
1 /**
2  * Copyright 2017 ZTE Corporation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.openo.log.impl;
17
18 import java.util.HashMap;
19 import org.slf4j.Logger;
20
21 import org.openo.log.api.LogMessage;
22 import org.openo.log.api.LogService;
23 import org.openo.log.api.OperLogMessage;
24 import org.openo.log.api.SecLogMessage;
25 import org.openo.log.api.SysLogMessage;
26 import org.slf4j.LoggerFactory;
27
28
29
30 public class InsertLogHandler {
31   private static final Logger LOGGER = LoggerFactory.getLogger(InsertLogHandler.class.getName());
32
33   public void insertLog(LogMessage msg, String logIndex, String logType) {
34     String logJson = Facitility.hashMapToJson(msg.getLocaleMap());
35     msg.setLocalMap(null);
36
37     if (msg.getExtendedFields() != null) {
38       String exendedFieldsJson = Facitility.oToJ(msg.getExtendedFields());
39       logJson = logJson.substring(0, logJson.lastIndexOf("}")) + ","
40           + exendedFieldsJson.substring(1) + "\n";
41       msg.setExtendedFields(null);
42     }
43     LOGGER.info(logJson, logIndex, logType);
44
45
46   }
47
48   public boolean checkCmdLog(OperLogMessage msg) {
49     StringBuilder errMsg = new StringBuilder();
50     boolean errFlag = false;
51     HashMap<String, Object> checkParamsMap = new HashMap<>();
52     checkParamsMap.put("userName", msg.getUserName());
53     checkParamsMap.put("operation", msg.getOperation());
54     checkParamsMap.put("descriptionInfo", msg.getDescriptionInfo());
55     checkParamsMap.put("hostname", msg.getHostname());
56     checkParamsMap.put("detail", msg.getDetail());
57     checkParamsMap.put("logStartDate", msg.getLogStartDate());
58     checkParamsMap.put("logEndDate", msg.getLogEndDate());
59     errMsg.append(Facitility.checkRequiredParam(checkParamsMap));
60
61
62     errMsg.append(checkCmdRank(msg.getRank()));
63     errMsg.append(checkConnectMode(msg.getConnectMode()));
64     errMsg.append(checkOperateResult(msg.getOperateResult()));
65     errMsg.append(checkIsDisplay(msg.getIsDisplay()));
66
67     if (msg.getOperation() != null && !("").equals(msg.getOperation())) {
68       errMsg.append(Facitility.checkRequiredJsonParam(msg.getOperation(), "operation"));
69     }
70     if (msg.getDescriptionInfo() != null && !("").equals(msg.getDescriptionInfo())) {
71       errMsg.append(Facitility.checkRequiredJsonParam(msg.getDescriptionInfo(), "descriptionInfo"));
72     }
73     if (msg.getDetail() != null && !("").equals(msg.getDetail())) {
74       errMsg.append(Facitility.checkRequiredJsonParam(msg.getDetail(), "detail"));
75     }
76     if (msg.getFailReason() != null && !("").equals(msg.getFailReason())) {
77       errMsg.append(Facitility.checkRequiredJsonParam(msg.getFailReason(), "failReason"));
78     }
79     if (!"".equals(errMsg.toString())) {
80       LOGGER.warn(errMsg.toString());
81       printCmdLog(msg);
82       errFlag = true;
83     }
84     return !errFlag;
85   }
86
87   private String checkIsDisplay(int isDisplay) {
88     StringBuilder errMsg = new StringBuilder();
89     if (isDisplay != LogService.LOG_DISPLAY && isDisplay != LogService.LOG_DISPLAY_NOT) {
90       errMsg.append("isDisplay must be 'LogService.LOG_DISPLAY'");
91       errMsg.append(" or 'LogService.LOG_DISPLAY_NOT'\n");
92
93     }
94     return errMsg.toString();
95   }
96
97   private String checkOperateResult(String operateResult) {
98     StringBuilder errMsg = new StringBuilder();
99     if ((operateResult != LogService.OPERLOG_SUCCESS)
100         && (operateResult != LogService.OPERLOG_ERROR)) {
101       errMsg.append("operateResult must be ' LogService.OPERLOG_ERROR'");
102       errMsg.append(" or 'LogService.OPERLOG_SUCCESS'\n");
103
104     }
105     return errMsg.toString();
106   }
107
108   private String checkConnectMode(String connectMode) {
109     StringBuilder errMsg = new StringBuilder();
110     if (!(connectMode.equals(LogService.CONNECT_TYPE_WEB)
111         || connectMode.equals(LogService.CONNECT_TYPE_TELNET)
112         || connectMode.equals(LogService.CONNECT_TYPE_SSH)
113         || connectMode.equals(LogService.CONNECT_TYPE_EM))) {
114       errMsg.append("connectMode must be 'LogService.CONNECT_TYPE_WEB'");
115       errMsg.append(" or 'LogService.CONNECT_TYPE_TELNET'");
116       errMsg.append(" or 'LogService.CONNECT_TYPE_SSH'");
117       errMsg.append(" or 'LogService.CONNECT_TYPE_EM'\n");
118
119     }
120
121     return errMsg.toString();
122   }
123
124   private String checkCmdRank(String rank) {
125     StringBuilder errMsg = new StringBuilder();
126     boolean isExist = false;
127     String[] ranks = {LogService.OPERLOG_RANK_NOTICE, LogService.OPERLOG_RANK_NORMAL,
128         LogService.OPERLOG_RANK_IMPORTANT, LogService.OPERLOG_RANK_VERYIMPORTANT};
129     for (int i = 0; i < ranks.length; i++) {
130       if (rank.equalsIgnoreCase(ranks[i])) {
131         isExist = true;
132         break;
133       }
134     }
135     if (!isExist) {
136       errMsg.append("rank must be 'LogService.OPERLOG_RANK_NORMAL'");
137       errMsg.append(" or 'LogService.OPERLOG_RANK_NOTICE'");
138       errMsg.append(" or 'LogService.OPERLOG_RANK_IMPORTANT'");
139       errMsg.append(" or 'LogService.OPERLOG_RANK_VERYIMPORTANT'\n");
140
141     }
142
143     return errMsg.toString();
144   }
145
146   public void printCmdLog(OperLogMessage msg) {
147     LOGGER.warn("CMD Log Error Detail msg");
148     LOGGER.warn("UserName   :" + msg.getUserName());
149     LOGGER.warn("operation         :" + msg.getOperation());
150     LOGGER.warn("hostname :" + msg.getHostname());
151     LOGGER.warn("descriptionInfo         :" + msg.getDescriptionInfo());
152     LOGGER.warn("operateResult  :" + msg.getOperateResult());
153     LOGGER.warn("FailReason :" + msg.getFailReason());
154     LOGGER.warn("detail       :" + msg.getDetail());
155     LOGGER.warn("ConnectMode:" + msg.getConnectMode());
156     LOGGER.warn("OperateResource :" + msg.getOperateResource());
157     LOGGER.warn("logStartDate :" + msg.getOperateResource());
158     LOGGER.warn("logEndDate :" + msg.getLogEndDate());
159     LOGGER.warn("Rank    :" + msg.getRank());
160   }
161
162   /**
163    * æ£€æŸ¥æ—¥å¿—å�‚数是å�¦ç¬¦å�ˆè¦�求
164    * 
165    * @return true
166    */
167   public boolean checkSecLog(SecLogMessage msg) {
168     StringBuilder errMsg = new StringBuilder();
169     boolean errFlag = false;
170     HashMap<String, Object> checkParamsMap = new HashMap<>();
171     checkParamsMap.put("userName", msg.getUserName());
172     checkParamsMap.put("logName", msg.getLogName());
173     checkParamsMap.put("hostname", msg.getHostname());
174     checkParamsMap.put("detail", msg.getDetail());
175     checkParamsMap.put("logDate", msg.getLogDate());
176     errMsg.append(Facitility.checkRequiredParam(checkParamsMap));
177     errMsg.append(checkConnectMode(msg.getConnectMode()));
178
179     if (msg.getLogName() != null && !("").equals(msg.getLogName())) {
180       errMsg.append(Facitility.checkRequiredJsonParam(msg.getLogName(), "logName"));
181     }
182     if (msg.getDetail() != null && !("").equals(msg.getDetail())) {
183       errMsg.append(Facitility.checkRequiredJsonParam(msg.getDetail(), "detail"));
184     }
185     if (!"".equals(errMsg.toString())) {
186       LOGGER.warn(errMsg.toString());
187       this.printSecLog(msg);
188       errFlag = true;
189     }
190     return !errFlag;
191   }
192
193   public void printSecLog(SecLogMessage secLog) {
194     LOGGER.warn("SCRT Log Error Detail msg");
195     LOGGER.warn("logDate    :" + secLog.getLogDate());
196     LOGGER.warn("logName    :" + secLog.getLogName());
197     LOGGER.warn("userName   :" + secLog.getUserName());
198     LOGGER.warn("hostname   :" + secLog.getHostname());
199     LOGGER.warn("connectMode:" + secLog.getConnectMode());
200     LOGGER.warn("detail   :" + secLog.getDetail());
201   }
202
203   public boolean checkSysLog(SysLogMessage msg) {
204     StringBuilder errMsg = new StringBuilder();
205     boolean errFlag = false;
206     HashMap<String, Object> checkParamsMap = new HashMap<>();
207
208     checkParamsMap.put("logName", msg.getLogName());
209     checkParamsMap.put("logStartDate", msg.getLogStartDate());
210     checkParamsMap.put("logEndDate", msg.getLogEndDate());
211     checkParamsMap.put("hostname", msg.getHostname());
212     checkParamsMap.put("detail", msg.getDetail());
213     errMsg.append(Facitility.checkRequiredParam(checkParamsMap));
214     errMsg.append(checkSysRank(msg.getRank()));
215     if (msg.getLogName() != null && !("").equals(msg.getLogName())) {
216       errMsg.append(Facitility.checkRequiredJsonParam(msg.getLogName(), "logName"));
217     }
218     if (msg.getDetail() != null && !("").equals(msg.getDetail())) {
219       errMsg.append(Facitility.checkRequiredJsonParam(msg.getDetail(), "detail"));
220     }
221     if (!"".equals(errMsg.toString())) {
222       LOGGER.warn(errMsg.toString());
223       printSysLog(msg);
224       errFlag = true;
225     }
226     return !errFlag;
227   }
228
229   private String checkSysRank(String rank) {
230     StringBuilder errMsg = new StringBuilder();
231     boolean isExist = false;
232     String[] ranks = {LogService.SYSLOG_RANK_INFORM, LogService.SYSLOG_RANK_NOTICE,
233         LogService.SYSLOG_RANK_WARN, LogService.SYSLOG_RANK_ERROR, LogService.SYSLOG_RANK_ALERT,
234         LogService.SYSLOG_RANK_EMERG};
235     for (int i = 0; i < ranks.length; i++) {
236       if (rank.equalsIgnoreCase(ranks[i])) {
237         isExist = true;
238         break;
239       }
240     }
241     if (!isExist) {
242       errMsg.append("rank must be 'LogService.SYSLOG_INFORM'");
243       errMsg.append(" or 'LogService.SYSLOG_NOTICE'");
244       errMsg.append(" or 'LogService.SYSLOG_WARN'");
245       errMsg.append(" or 'LogService.SYSLOG_ERROR'");
246       errMsg.append(" or 'LogService.SYSLOG_ALTERT'");
247       errMsg.append(" or 'LogService.SYSLOG_EMERG'\n");
248
249     }
250
251     return errMsg.toString();
252   }
253
254   public void printSysLog(SysLogMessage msg) {
255     LOGGER.warn("System Log Error Detail msg");
256     LOGGER.warn("logName :" + msg.getLogName());
257     LOGGER.warn("rank    :" + msg.getRank());
258     LOGGER.warn("source  :" + msg.getSource());
259     LOGGER.warn("logStartDate :" + msg.getLogStartDate());
260     LOGGER.warn("logEndDate :" + msg.getLogEndDate());
261     LOGGER.warn("detail    :" + msg.getDetail());
262   }
263
264 }
265