TraceConfig.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.tsi.comm.server.config;
  2. import com.tsi.comm.server.TsiCommServerApplication;
  3. import com.tsi.comm.server.repository.TsiNodeManager;
  4. import com.tsi.comm.server.vo.TsiNodeVo;
  5. import com.tsi.common.utils.StringUtils;
  6. import lombok.Getter;
  7. import lombok.RequiredArgsConstructor;
  8. import lombok.Setter;
  9. import lombok.ToString;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.stereotype.Component;
  12. import java.io.File;
  13. import java.io.FileInputStream;
  14. import java.util.List;
  15. import java.util.Properties;
  16. @Slf4j
  17. @Getter
  18. @Setter
  19. @ToString
  20. @RequiredArgsConstructor
  21. @Component
  22. public class TraceConfig {
  23. private final TsiNodeManager nodeManager;
  24. private boolean queueReport = false;
  25. private boolean sessionReport = false;
  26. private boolean nodeLogging = false;
  27. private Properties getProperties() {
  28. String traceFileName = System.getProperty("user.dir") + File.separator + "conf" + File.separator + TsiCommServerApplication.APPLICATION_NAME + "-trace.cfg";
  29. Properties props = new Properties();
  30. try {
  31. FileInputStream in = new FileInputStream(traceFileName);
  32. props.load(in);
  33. in.close();
  34. } catch(Exception e) {
  35. // log.error("{}.getTraceFileInputStream: Exception1: {}", this.getClass().getSimpleName(), e.toString());
  36. }
  37. return props;
  38. }
  39. private long getNodeId(String nodeId) {
  40. try {
  41. return Long.parseLong(nodeId.trim());
  42. }
  43. catch (NumberFormatException e) {
  44. return -1;
  45. }
  46. }
  47. public void loadTraceInfo() {
  48. try {
  49. Properties props = getProperties();
  50. this.nodeManager.initDump();
  51. String dumps = props.getProperty("DUMP", "").trim();
  52. if (!dumps.isEmpty()) {
  53. List<String> regionCds = StringUtils.split(dumps, ",");
  54. regionCds.forEach(id -> {
  55. TsiNodeVo node = this.nodeManager.get(getNodeId(id.trim()));
  56. if (node != null) {
  57. node.setDump(true);
  58. }
  59. });
  60. }
  61. this.sessionReport = props.getProperty("session-report", "false").trim().equalsIgnoreCase("true");
  62. this.queueReport = props.getProperty("queue-report", "false").trim().equalsIgnoreCase("true");
  63. this.nodeLogging = props.getProperty("node-logging", "false").trim().equalsIgnoreCase("true");
  64. }
  65. catch(Exception e) {
  66. log.error("{}.loadDebugInfo: Exception2: {}", this.getClass().getSimpleName(), e.toString());
  67. }
  68. }
  69. }