From 7afa32638bd4c1eec05a19a6586af3f4b1ce8ccb Mon Sep 17 00:00:00 2001
From: wuxw7 <wuxw7@asiainfo.com>
Date: 星期六, 16 六月 2018 01:25:43 +0800
Subject: [PATCH] 日志服务实现
---
LogService/src/main/java/com/java110/log/smo/impl/LogServiceSMOImpl.java | 122 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 120 insertions(+), 2 deletions(-)
diff --git a/LogService/src/main/java/com/java110/log/smo/impl/LogServiceSMOImpl.java b/LogService/src/main/java/com/java110/log/smo/impl/LogServiceSMOImpl.java
index 7f284be..fdfdb36 100644
--- a/LogService/src/main/java/com/java110/log/smo/impl/LogServiceSMOImpl.java
+++ b/LogService/src/main/java/com/java110/log/smo/impl/LogServiceSMOImpl.java
@@ -1,15 +1,133 @@
package com.java110.log.smo.impl;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.exception.GenerateCodeException;
+import com.java110.common.log.LoggerEngine;
+import com.java110.common.util.Assert;
+import com.java110.common.util.DateUtil;
import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.log.dao.LogServiceDao;
import com.java110.log.smo.ILogServiceSMO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.rmi.NoSuchObjectException;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
/**
- * 璁㈠崟鏈嶅姟涓氬姟閫昏緫澶勭悊瀹炵幇绫�
+ * 鏃ュ織 娑堟伅澶勭悊绫�
* Created by wuxw on 2017/4/11.
*/
-@Service("orderServiceSMOImpl")
+@Service("logServiceSMOImpl")
@Transactional
public class LogServiceSMOImpl extends BaseServiceSMO implements ILogServiceSMO {
+
+ private final static Logger logger = LoggerFactory.getLogger(LogServiceSMOImpl.class);
+
+ @Autowired
+ private LogServiceDao logServiceDaoImpl;
+
+ /**
+ * 淇濆瓨鏃ュ織淇℃伅
+ * @param logMessage 闇�瑕佷繚瀛樼殑鏃ュ織淇℃伅
+ */
+ @Override
+ public void saveLogMessage(String logMessage) {
+ logger.debug("received log message : {}" ,logMessage);
+
+ try{
+ doSaveLogMessage(logMessage);
+ }catch (Exception e){
+ logger.error("save log message error :",e);
+ }
+ }
+
+
+ /**
+ *
+ * @param logMessage 闇�瑕佷繚瀛樼殑鏃ュ織淇℃伅
+ */
+ private void doSaveLogMessage(String logMessage) throws Exception {
+
+ JSONObject logMessageObj = JSONObject.parseObject(logMessage);
+ //鏍¢獙
+ validateLogMessage(logMessageObj);
+
+ // 璋冪敤鏈嶅姟鐢熸垚log_id
+ String log_id = GenerateCodeFactory.getInnerTransactionId();
+
+ // 灏佽鏃ュ織淇濆瓨鍙傛暟
+ Map logMessageParams= new HashMap();
+ logMessageParams.put("logId",log_id);
+ builderLogMessageParams(logMessageParams,logMessageObj);
+
+ //淇濆瓨鏃ュ織
+ logServiceDaoImpl.saveTransactionLog(logMessageParams);
+ //淇濆瓨鏃ュ織锛堜氦浜掓姤鏂囷級
+ logServiceDaoImpl.saveTransactionLogMessage(logMessageParams);
+
+ }
+
+ /**
+ * 灏佽鏃ュ織淇濆瓨鍙傛暟
+ * @param logMessageParams 鏃ュ織淇濆瓨鍙傛暟
+ */
+ private void builderLogMessageParams(Map logMessageParams,JSONObject logMessageObj) throws Exception{
+
+ logMessageParams.putAll(logMessageObj);
+ //#{requestHeader},#{responseHeader},#{requestMessage},#{responseMessage},#{remark}
+ String requestMessage = logMessageObj.getString("requestMessage");
+ String responseMessage = logMessageObj.getString("responseMessage");
+
+ JSONObject requestMessageObj = JSONObject.parseObject(requestMessage);
+ JSONObject responseMessageObj = JSONObject.parseObject(responseMessage);
+
+ logMessageParams.put("requestHeader",requestMessageObj.getString("headers"));
+ logMessageParams.put("requestMessage",requestMessageObj.getString("body"));
+ logMessageParams.put("responseHeader",responseMessageObj.getString("headers"));
+ logMessageParams.put("responseMessage",responseMessageObj.getString("body"));
+
+ logMessageParams.put("timestamp", DateUtil.getDefaultDateFromString(logMessageObj.getString("timestamp")));
+ }
+
+ /**
+ * 鏍¢獙 鏃ュ織鎶ユ枃 蹇呭~鑺傜偣鏄惁瀛樺湪
+ * @param logMessageObj JSON 鍖栫殑鏃ュ織淇℃伅
+ */
+ private void validateLogMessage(JSONObject logMessageObj){
+
+ Assert.hasKeyAndValue(logMessageObj,"transactionId","can not find transactionId node or transactionId is null");
+
+ Assert.hasKeyAndValue(logMessageObj,"dataFlowId","can not find dataFlowId node or dataFlowId is null");
+
+ Assert.hasKeyAndValue(logMessageObj,"ip","can not find ip node or ip is null");
+
+ Assert.hasKeyAndValue(logMessageObj,"port","can not find port node or port is null");
+
+ Assert.hasKeyAndValue(logMessageObj,"appId","can not find appId node or appId is null");
+
+ Assert.hasKeyAndValue(logMessageObj,"timestamp","can not find timestamp node or timestamp is null");
+
+ Assert.hasKeyAndValue(logMessageObj,"logStatus","can not find logStatus node or logStatus is null");
+
+ Assert.hasKey(logMessageObj,"requestMessage","can not find requestMessage node ");
+
+ Assert.hasKey(logMessageObj,"responseMessage","can not find responseMessage node ");
+ }
+
+
+ public LogServiceDao getLogServiceDaoImpl() {
+ return logServiceDaoImpl;
+ }
+
+ public void setLogServiceDaoImpl(LogServiceDao logServiceDaoImpl) {
+ this.logServiceDaoImpl = logServiceDaoImpl;
+ }
}
--
Gitblit v1.8.0