Commit 360fe689b1df765ca6754d32921c1ee18f9e9c00

Authored by xubinbin
1 parent 5a962184

增加日志记录时的完全限定类名,用于定位日志位置。

ps:2023-12-12 16:30:58.779 [Thread-10]  INFO --- gov.nist.javax.sip.stack.UDPMessageChannel : 81 Done processing MESSAGE sip:44010200492000000003@4401020049 SIP/2.0
日志中的“gov.nist.javax.sip.stack.UDPMessageChannel”内容
src/main/java/com/genersoft/iot/vmp/gb28181/conf/StackLoggerImpl.java
1 1 package com.genersoft.iot.vmp.gb28181.conf;
2 2  
3 3 import gov.nist.core.StackLogger;
4   -import org.slf4j.Logger;
5 4 import org.slf4j.LoggerFactory;
  5 +import org.slf4j.spi.LocationAwareLogger;
6 6 import org.springframework.stereotype.Component;
7 7  
8 8 import java.util.Properties;
... ... @@ -10,100 +10,132 @@ import java.util.Properties;
10 10 @Component
11 11 public class StackLoggerImpl implements StackLogger {
12 12  
13   - private final static Logger logger = LoggerFactory.getLogger(StackLoggerImpl.class);
  13 + /**
  14 + * 完全限定类名(Fully Qualified Class Name),用于定位日志位置
  15 + */
  16 + private static final String FQCN = StackLoggerImpl.class.getName();
  17 +
  18 + /**
  19 + * 获取栈中类信息(以便底层日志记录系统能够提取正确的位置信息(方法名、行号))
  20 + * @return LocationAwareLogger
  21 + */
  22 + private static LocationAwareLogger getLocationAwareLogger() {
  23 + return (LocationAwareLogger) LoggerFactory.getLogger(new Throwable().getStackTrace()[4].getClassName());
  24 + }
  25 +
  26 +
  27 + /**
  28 + * 封装打印日志的位置信息
  29 + * @param level 日志级别
  30 + * @param message 日志事件的消息
  31 + */
  32 + private static void log(int level, String message) {
  33 + LocationAwareLogger locationAwareLogger = getLocationAwareLogger();
  34 + locationAwareLogger.log(null, FQCN, level, message, null, null);
  35 + }
  36 +
  37 + /**
  38 + * 封装打印日志的位置信息
  39 + * @param level 日志级别
  40 + * @param message 日志事件的消息
  41 + */
  42 + private static void log(int level, String message, Throwable throwable) {
  43 + LocationAwareLogger locationAwareLogger = getLocationAwareLogger();
  44 + locationAwareLogger.log(null, FQCN, level, message, null, throwable);
  45 + }
  46 +
  47 + @Override
  48 + public void logStackTrace() {
  49 +
  50 + }
  51 +
  52 + @Override
  53 + public void logStackTrace(int traceLevel) {
  54 + System.out.println("traceLevel: " + traceLevel);
  55 + }
  56 +
  57 + @Override
  58 + public int getLineCount() {
  59 + return 0;
  60 + }
  61 +
  62 + @Override
  63 + public void logException(Throwable ex) {
  64 +
  65 + }
  66 +
  67 + @Override
  68 + public void logDebug(String message) {
  69 + log(LocationAwareLogger.INFO_INT, message);
  70 + }
  71 +
  72 + @Override
  73 + public void logDebug(String message, Exception ex) {
  74 + log(LocationAwareLogger.INFO_INT, message, ex);
  75 + }
  76 +
  77 + @Override
  78 + public void logTrace(String message) {
  79 + log(LocationAwareLogger.INFO_INT, message);
  80 + }
  81 +
  82 + @Override
  83 + public void logFatalError(String message) {
  84 + log(LocationAwareLogger.INFO_INT, message);
  85 + }
  86 +
  87 + @Override
  88 + public void logError(String message) {
  89 + log(LocationAwareLogger.INFO_INT, message);
  90 + }
  91 +
  92 + @Override
  93 + public boolean isLoggingEnabled() {
  94 + return true;
  95 + }
  96 +
  97 + @Override
  98 + public boolean isLoggingEnabled(int logLevel) {
  99 + return true;
  100 + }
  101 +
  102 + @Override
  103 + public void logError(String message, Exception ex) {
  104 + log(LocationAwareLogger.INFO_INT, message, ex);
  105 + }
  106 +
  107 + @Override
  108 + public void logWarning(String message) {
  109 + log(LocationAwareLogger.INFO_INT, message);
  110 + }
  111 +
  112 + @Override
  113 + public void logInfo(String message) {
  114 + log(LocationAwareLogger.INFO_INT, message);
  115 + }
  116 +
  117 + @Override
  118 + public void disableLogging() {
  119 +
  120 + }
  121 +
  122 + @Override
  123 + public void enableLogging() {
  124 +
  125 + }
  126 +
  127 + @Override
  128 + public void setBuildTimeStamp(String buildTimeStamp) {
  129 +
  130 + }
  131 +
  132 + @Override
  133 + public void setStackProperties(Properties stackProperties) {
14 134  
15   - @Override
16   - public void logStackTrace() {
  135 + }
17 136  
18   - }
19   -
20   - @Override
21   - public void logStackTrace(int traceLevel) {
22   - System.out.println("traceLevel: " + traceLevel);
23   - }
24   -
25   - @Override
26   - public int getLineCount() {
27   - return 0;
28   - }
29   -
30   - @Override
31   - public void logException(Throwable ex) {
32   -
33   - }
34   -
35   - @Override
36   - public void logDebug(String message) {
37   -// logger.debug(message);
38   - }
39   -
40   - @Override
41   - public void logDebug(String message, Exception ex) {
42   -// logger.debug(message);
43   - }
44   -
45   - @Override
46   - public void logTrace(String message) {
47   - logger.trace(message);
48   - }
49   -
50   - @Override
51   - public void logFatalError(String message) {
52   -// logger.error(message);
53   - }
54   -
55   - @Override
56   - public void logError(String message) {
57   -// logger.error(message);
58   - }
59   -
60   - @Override
61   - public boolean isLoggingEnabled() {
62   - return true;
63   - }
64   -
65   - @Override
66   - public boolean isLoggingEnabled(int logLevel) {
67   - return true;
68   - }
69   -
70   - @Override
71   - public void logError(String message, Exception ex) {
72   -// logger.error(message);
73   - }
74   -
75   - @Override
76   - public void logWarning(String message) {
77   - logger.warn(message);
78   - }
79   -
80   - @Override
81   - public void logInfo(String message) {
82   - logger.info(message);
83   - }
84   -
85   - @Override
86   - public void disableLogging() {
87   -
88   - }
89   -
90   - @Override
91   - public void enableLogging() {
92   -
93   - }
94   -
95   - @Override
96   - public void setBuildTimeStamp(String buildTimeStamp) {
97   -
98   - }
99   -
100   - @Override
101   - public void setStackProperties(Properties stackProperties) {
102   -
103   - }
104   -
105   - @Override
106   - public String getLoggerName() {
107   - return null;
108   - }
  137 + @Override
  138 + public String getLoggerName() {
  139 + return null;
  140 + }
109 141 }
... ...