diff --git a/o2server/x_console/src/main/java/com/x/server/console/NodeAgent.java b/o2server/x_console/src/main/java/com/x/server/console/NodeAgent.java index 0c1b937f6c7ce2474a98a7590d94152c5380199f..5975a313750a46f475dee815c6b6ffd9173263de 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/NodeAgent.java +++ b/o2server/x_console/src/main/java/com/x/server/console/NodeAgent.java @@ -57,7 +57,7 @@ public class NodeAgent extends Thread { try (DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); DataInputStream dis = new DataInputStream(socket.getInputStream())) { String json = dis.readUTF(); - logger.info("receive socket json={}",json); + //logger.info("receive socket json={}",json); CommandObject commandObject = XGsonBuilder.instance().fromJson(json, CommandObject.class); if (BooleanUtils.isTrue(Config.currentNode().nodeAgentEncrypt())) { String decrypt = Crypto.rsaDecrypt(commandObject.getCredential(), Config.privateKey()); @@ -143,11 +143,15 @@ public class NodeAgent extends Thread { curReadSize = curReadSize + bytes.length + 1; String lineStr = new String(bytes); String time = curTime; + String logLevel = ""; if (lineStr.length() > 23) { time = StringUtils.left(lineStr, 19); if (DateTools.isDateTime(time)) { time = StringUtils.left(lineStr, 23); curTime = time; + if(lineStr.length() > 29){ + logLevel = StringUtils.right(StringUtils.left(lineStr, 29),5).trim(); + } } else { if (StringUtils.isEmpty(curTime)) { time = "2020-01-01 00:00:01.001"; @@ -164,6 +168,8 @@ public class NodeAgent extends Thread { } Map map = new HashMap<>(); map.put("logTime",time+"#"+Config.node()); + map.put("node", Config.node()); + map.put("logLevel", logLevel); map.put("lineLog", lineStr); list.add(map); if (curReadSize > LOG_MAX_READ_SIZE){ diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/warnlog/ActionGetSystemLog.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/warnlog/ActionGetSystemLog.java index 5e7992d5875f389ae905b5f9890e9b133a1bad9d..8d0985cbb5d7fd0242d0b02f2f66e6acc0f02b10 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/warnlog/ActionGetSystemLog.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/warnlog/ActionGetSystemLog.java @@ -6,10 +6,12 @@ import com.x.base.core.project.cache.ApplicationCache; import com.x.base.core.project.config.Config; import com.x.base.core.project.config.Nodes; import com.x.base.core.project.connection.ConnectionAction; +import com.x.base.core.project.gson.GsonPropertyObject; import com.x.base.core.project.gson.XGsonBuilder; import com.x.base.core.project.http.ActionResult; import com.x.base.core.project.http.EffectivePerson; import com.x.base.core.project.http.HttpToken; +import com.x.base.core.project.jaxrs.WoValue; import com.x.base.core.project.jaxrs.WrapStringList; import com.x.base.core.project.logger.Logger; import com.x.base.core.project.logger.LoggerFactory; @@ -30,29 +32,29 @@ class ActionGetSystemLog extends BaseAction { private static Logger logger = LoggerFactory.getLogger(ActionGetSystemLog.class); - ActionResult execute(EffectivePerson effectivePerson, String tag) throws Exception { - ActionResult result = new ActionResult<>(); + ActionResult> execute(EffectivePerson effectivePerson, String tag) throws Exception { + ActionResult> result = new ActionResult<>(); - Wo wo = new Wo(); + List woList = new ArrayList<>(); String key = effectivePerson.getDistinguishedName(); if(key.indexOf("@") > -1){ key = key.split("@")[1] + tag; } if(Config.node().equals(Config.resource_node_centersPirmaryNode())){ - wo.setValueList(getSystemLog(key)); + woList = getSystemLog(key); }else{ List headers = ListTools.toList(new NameValuePair(HttpToken.X_Token, effectivePerson.getToken())); - wo = ConnectionAction.get(Config.url_x_program_center_jaxrs("warnlog", "view", "system", "log", "tag", tag), headers).getData(Wo.class); + woList = ConnectionAction.get(Config.url_x_program_center_jaxrs("warnlog", "view", "system", "log", "tag", tag), headers).getDataAsList(Wo.class); } - result.setData(wo); + result.setData(woList); return result; } - synchronized private List getSystemLog(String key) throws Exception{ + synchronized private List getSystemLog(String key) throws Exception{ Nodes nodes = Config.nodes(); - List allLogs = new ArrayList<>(); + List allLogs = new ArrayList<>(); for (String node : nodes.keySet()){ if(nodes.get(node).getApplication().getEnable() || nodes.get(node).getCenter().getEnable()){ try (Socket socket = new Socket(node, nodes.get(node).nodeAgentPort())) { @@ -78,14 +80,13 @@ class ActionGetSystemLog extends BaseAction { dos.writeLong(lastPoint); dos.flush(); - logger.info("socket dispatch getSystemLog to {}:{} lastPoint={}", node, nodes.get(node).nodeAgentPort(), lastPoint); + //logger.debug("socket dispatch getSystemLog to {}:{} lastPoint={}", node, nodes.get(node).nodeAgentPort(), lastPoint); String result = dis.readUTF(); if(StringUtils.isNotEmpty(result) && result.startsWith("[")){ - List list = gson.fromJson(result, new TypeToken>(){}.getType()); + List list = gson.fromJson(result, new TypeToken>(){}.getType()); allLogs.addAll(list); long returnLastPoint = dis.readLong(); - logger.info("用户的cacheKey={},最后日志标志:{}", cacheKey, returnLastPoint); if(clo==null){ clo = new CacheLogObject(); clo.setUserToken(key); @@ -103,24 +104,21 @@ class ActionGetSystemLog extends BaseAction { } } } - List list = new ArrayList<>(); allLogs.stream().sorted((o1, o2) -> { return o1.logTime.compareTo(o2.logTime); - }).forEach(o -> { - list.add(o.getLineLog()); }); - return list; + return allLogs; } - public static class Wo extends WrapStringList { - - } - - public static class SystemLog { + public static class Wo extends GsonPropertyObject { private String logTime; private String lineLog; + private String node; + + private String logLevel; + public String getLogTime() { return logTime; } @@ -136,6 +134,22 @@ class ActionGetSystemLog extends BaseAction { public void setLineLog(String lineLog) { this.lineLog = lineLog; } + + public String getNode() { + return node; + } + + public void setNode(String node) { + this.node = node; + } + + public String getLogLevel() { + return logLevel; + } + + public void setLogLevel(String logLevel) { + this.logLevel = logLevel; + } } } diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/warnlog/WarnLogAction.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/warnlog/WarnLogAction.java index 273cfe878479067b2a278c6108ce504494098a08..f8e1e0ed9bbe0dc23fcaa6acc6e07f026c92738c 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/warnlog/WarnLogAction.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/warnlog/WarnLogAction.java @@ -148,7 +148,7 @@ public class WarnLogAction extends StandardJaxrsAction { public void getSystemLog(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("日志标识") @PathParam("tag") String tag) { EffectivePerson effectivePerson = this.effectivePerson(request); - ActionResult result = new ActionResult<>(); + ActionResult> result = new ActionResult<>(); try { result = new ActionGetSystemLog().execute(effectivePerson, tag); } catch (Exception e) {