2 * Copyright 2017 ZTE Corporation.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 package org.openo.log.impl;
18 import java.util.HashMap;
19 import org.slf4j.Logger;
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;
30 public class InsertLogHandler {
31 private static final Logger LOGGER = LoggerFactory.getLogger(InsertLogHandler.class.getName());
33 public void insertLog(LogMessage msg, String logIndex, String logType) {
34 String logJson = Facitility.hashMapToJson(msg.getLocaleMap());
35 msg.setLocalMap(null);
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);
43 LOGGER.info(logJson, logIndex, logType);
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));
62 errMsg.append(checkCmdRank(msg.getRank()));
63 errMsg.append(checkConnectMode(msg.getConnectMode()));
64 errMsg.append(checkOperateResult(msg.getOperateResult()));
65 errMsg.append(checkIsDisplay(msg.getIsDisplay()));
67 if (msg.getOperation() != null && !("").equals(msg.getOperation())) {
68 errMsg.append(Facitility.checkRequiredJsonParam(msg.getOperation(), "operation"));
70 if (msg.getDescriptionInfo() != null && !("").equals(msg.getDescriptionInfo())) {
71 errMsg.append(Facitility.checkRequiredJsonParam(msg.getDescriptionInfo(), "descriptionInfo"));
73 if (msg.getDetail() != null && !("").equals(msg.getDetail())) {
74 errMsg.append(Facitility.checkRequiredJsonParam(msg.getDetail(), "detail"));
76 if (msg.getFailReason() != null && !("").equals(msg.getFailReason())) {
77 errMsg.append(Facitility.checkRequiredJsonParam(msg.getFailReason(), "failReason"));
79 if (!"".equals(errMsg.toString())) {
80 LOGGER.warn(errMsg.toString());
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");
94 return errMsg.toString();
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");
105 return errMsg.toString();
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");
121 return errMsg.toString();
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])) {
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");
143 return errMsg.toString();
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());
163 * 检查日志�数是�符��求
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()));
179 if (msg.getLogName() != null && !("").equals(msg.getLogName())) {
180 errMsg.append(Facitility.checkRequiredJsonParam(msg.getLogName(), "logName"));
182 if (msg.getDetail() != null && !("").equals(msg.getDetail())) {
183 errMsg.append(Facitility.checkRequiredJsonParam(msg.getDetail(), "detail"));
185 if (!"".equals(errMsg.toString())) {
186 LOGGER.warn(errMsg.toString());
187 this.printSecLog(msg);
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());
203 public boolean checkSysLog(SysLogMessage msg) {
204 StringBuilder errMsg = new StringBuilder();
205 boolean errFlag = false;
206 HashMap<String, Object> checkParamsMap = new HashMap<>();
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"));
218 if (msg.getDetail() != null && !("").equals(msg.getDetail())) {
219 errMsg.append(Facitility.checkRequiredJsonParam(msg.getDetail(), "detail"));
221 if (!"".equals(errMsg.toString())) {
222 LOGGER.warn(errMsg.toString());
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])) {
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");
251 return errMsg.toString();
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());