From a209d173904843eee90e689c7431eb97c6e7bac6 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 14 二月 2023 11:29:44 +0800
Subject: [PATCH] Merge branch 'wvp-28181-2.0'
---
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java | 2
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java | 3
src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java | 92 ++++++++++++++++++
src/main/java/com/genersoft/iot/vmp/gb28181/conf/StackLoggerImpl.java | 109 +++++++++++++++++++++
doc/_content/introduction/deployment.md | 2
src/main/java/com/genersoft/iot/vmp/gb28181/conf/DefaultProperties.java | 29 +----
src/main/resources/logback-spring-local.xml | 49 +++------
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java | 2
8 files changed, 227 insertions(+), 61 deletions(-)
diff --git a/doc/_content/introduction/deployment.md b/doc/_content/introduction/deployment.md
index 3f13867..a04aa45 100644
--- a/doc/_content/introduction/deployment.md
+++ b/doc/_content/introduction/deployment.md
@@ -28,7 +28,7 @@
nohup java -jar wvp-pro-*.jar &
```
war鍖咃細
-涓嬭浇Tomcat鍚庡皢war鍖呮斁鍏ebapps涓紝鍚姩Tomcat浠ヨВ鍘媤ar鍖咃紝鍋滄Tomcat鍚庯紝鍒犻櫎ROOT鐩綍浠ュ強war鍖咃紝灏嗚В鍘嬪悗鐨剋ar鍖呯洰褰曢噸鍛藉悕涓篟OOT锛�
+涓嬭浇Tomcat鍚庡皢war鍖呮斁鍏ebapps涓紝鍚姩Tomcat浠ヨВ鍘媤ar鍖咃紝鍋滄Tomcat鍚庯紝鍒犻櫎ROOT鐩綍浠ュ強war鍖咃紝灏嗚В鍘嬪悗鐨剋ar鍖呯洰褰曢噸鍛藉悕涓篟OOT锛屽皢閰嶇疆鏂囦欢涓殑Server.port閰嶇疆涓轰笌Tomcat绔彛涓�鑷�
鐒跺悗鍚姩Tomcat銆�
**鍚姩ZLM**
```shell
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
index 605e7cf..cfac446 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
@@ -65,7 +65,7 @@
private void addListeningPoint(String monitorIp, int port){
SipStackImpl sipStack;
try {
- sipStack = (SipStackImpl)sipFactory.createSipStack(DefaultProperties.getProperties(monitorIp, false, userSetting.getSipLog()));
+ sipStack = (SipStackImpl)sipFactory.createSipStack(DefaultProperties.getProperties(monitorIp, userSetting.getSipLog()));
} catch (PeerUnavailableException e) {
logger.error("[Sip Server] SIP鏈嶅姟鍚姩澶辫触锛� 鐩戝惉鍦板潃{}澶辫触,璇锋鏌p鏄惁姝g‘", monitorIp);
return;
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/DefaultProperties.java b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/DefaultProperties.java
index 3cdf48d..59fa8f6 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/DefaultProperties.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/DefaultProperties.java
@@ -12,7 +12,7 @@
*/
public class DefaultProperties {
- public static Properties getProperties(String ip, boolean isDebug, boolean sipLog) {
+ public static Properties getProperties(String ip, boolean sipLog) {
Properties properties = new Properties();
properties.setProperty("javax.sip.STACK_NAME", "GB28181_SIP");
properties.setProperty("javax.sip.IP_ADDRESS", ip);
@@ -25,9 +25,6 @@
*/
// * gov/nist/javax/sip/SipStackImpl.class
- if (isDebug) {
- properties.setProperty("gov.nist.javax.sip.LOG_MESSAGE_CONTENT", "false");
- }
// 鎺ユ敹鎵�鏈塶otify璇锋眰锛屽嵆浣挎病鏈夎闃�
properties.setProperty("gov.nist.javax.sip.DELIVER_UNSOLICITED_NOTIFY", "true");
properties.setProperty("gov.nist.javax.sip.AUTOMATIC_DIALOG_ERROR_HANDLING", "false");
@@ -50,29 +47,13 @@
*/
Logger logger = LoggerFactory.getLogger(AlarmNotifyMessageHandler.class);
if (sipLog) {
- if (logger.isDebugEnabled()) {
- System.out.println("DEBUG");
- properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "DEBUG");
- }else if (logger.isInfoEnabled()) {
- System.out.println("INFO1");
- properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "INFO");
- }else if (logger.isWarnEnabled()) {
- System.out.println("WARNING");
- properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "WARNING");
- }else if (logger.isErrorEnabled()) {
- System.out.println("ERROR");
- properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "ERROR");
- }else {
- System.out.println("INFO2");
- properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "INFO");
- }
- logger.info("[SIP鏃ュ織]绾у埆涓�: {}", properties.getProperty("gov.nist.javax.sip.TRACE_LEVEL"));
+ properties.setProperty("gov.nist.javax.sip.STACK_LOGGER", "com.genersoft.iot.vmp.gb28181.conf.StackLoggerImpl");
+ properties.setProperty("gov.nist.javax.sip.SERVER_LOGGER", "com.genersoft.iot.vmp.gb28181.conf.ServerLoggerImpl");
+ properties.setProperty("gov.nist.javax.sip.LOG_MESSAGE_CONTENT", "true");
+ logger.info("[SIP鏃ュ織]宸插紑鍚�");
}else {
logger.info("[SIP鏃ュ織]宸插叧闂�");
}
-
-
-
return properties;
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java
new file mode 100644
index 0000000..3fc1d37
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java
@@ -0,0 +1,92 @@
+package com.genersoft.iot.vmp.gb28181.conf;
+
+import gov.nist.core.ServerLogger;
+import gov.nist.core.StackLogger;
+import gov.nist.javax.sip.message.SIPMessage;
+import gov.nist.javax.sip.stack.SIPTransactionStack;
+
+import javax.sip.SipStack;
+import java.util.Properties;
+
+public class ServerLoggerImpl implements ServerLogger {
+
+ private boolean showLog = true;
+
+ private SIPTransactionStack sipStack;
+
+ protected StackLogger stackLogger;
+
+ @Override
+ public void closeLogFile() {
+
+ }
+
+ @Override
+ public void logMessage(SIPMessage message, String from, String to, boolean sender, long time) {
+ if (!showLog) {
+ return;
+ }
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append(!sender? "鍙戦�侊細鐩爣--->" + from:"鎺ユ敹锛氭潵鑷�--->" + to)
+ .append("\r\n")
+ .append(message);
+ this.stackLogger.logInfo(stringBuilder.toString());
+
+ }
+
+ @Override
+ public void logMessage(SIPMessage message, String from, String to, String status, boolean sender, long time) {
+ if (!showLog) {
+ return;
+ }
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append(!sender? "鍙戦�侊細 鐩爣->" + from :"鎺ユ敹锛氭潵鑷�->" + to)
+ .append("\r\n")
+ .append(message);
+ this.stackLogger.logInfo(stringBuilder.toString());
+ }
+
+ @Override
+ public void logMessage(SIPMessage message, String from, String to, String status, boolean sender) {
+ if (!showLog) {
+ return;
+ }
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append(!sender? "鍙戦�侊細 鐩爣->" + from :"鎺ユ敹锛氭潵鑷�->" + to)
+ .append("\r\n")
+ .append(message);
+ this.stackLogger.logInfo(stringBuilder.toString());
+ }
+
+ @Override
+ public void logException(Exception ex) {
+ if (!showLog) {
+ return;
+ }
+ this.stackLogger.logException(ex);
+ }
+
+ @Override
+ public void setStackProperties(Properties stackProperties) {
+ if (!showLog) {
+ return;
+ }
+ String TRACE_LEVEL = stackProperties.getProperty("gov.nist.javax.sip.TRACE_LEVEL");
+ if (TRACE_LEVEL != null) {
+ showLog = true;
+ }
+ }
+
+ @Override
+ public void setSipStack(SipStack sipStack) {
+ if (!showLog) {
+ return;
+ }
+ if(sipStack instanceof SIPTransactionStack) {
+ this.sipStack = (SIPTransactionStack)sipStack;
+ this.stackLogger = this.sipStack.getStackLogger();
+ }
+ }
+
+
+}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/StackLoggerImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/StackLoggerImpl.java
new file mode 100644
index 0000000..5e67bdb
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/StackLoggerImpl.java
@@ -0,0 +1,109 @@
+package com.genersoft.iot.vmp.gb28181.conf;
+
+import gov.nist.core.StackLogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.Properties;
+
+@Component
+public class StackLoggerImpl implements StackLogger {
+
+ private final static Logger logger = LoggerFactory.getLogger(StackLoggerImpl.class);
+
+ @Override
+ public void logStackTrace() {
+
+ }
+
+ @Override
+ public void logStackTrace(int traceLevel) {
+ System.out.println("traceLevel: " + traceLevel);
+ }
+
+ @Override
+ public int getLineCount() {
+ return 0;
+ }
+
+ @Override
+ public void logException(Throwable ex) {
+
+ }
+
+ @Override
+ public void logDebug(String message) {
+// logger.debug(message);
+ }
+
+ @Override
+ public void logDebug(String message, Exception ex) {
+// logger.debug(message);
+ }
+
+ @Override
+ public void logTrace(String message) {
+ logger.trace(message);
+ }
+
+ @Override
+ public void logFatalError(String message) {
+// logger.error(message);
+ }
+
+ @Override
+ public void logError(String message) {
+// logger.error(message);
+ }
+
+ @Override
+ public boolean isLoggingEnabled() {
+ return true;
+ }
+
+ @Override
+ public boolean isLoggingEnabled(int logLevel) {
+ return true;
+ }
+
+ @Override
+ public void logError(String message, Exception ex) {
+// logger.error(message);
+ }
+
+ @Override
+ public void logWarning(String message) {
+ logger.warn(message);
+ }
+
+ @Override
+ public void logInfo(String message) {
+ logger.info(message);
+ }
+
+ @Override
+ public void disableLogging() {
+
+ }
+
+ @Override
+ public void enableLogging() {
+
+ }
+
+ @Override
+ public void setBuildTimeStamp(String buildTimeStamp) {
+
+ }
+
+ @Override
+ public void setStackProperties(Properties stackProperties) {
+
+ }
+
+ @Override
+ public String getLoggerName() {
+ return null;
+ }
+}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java
index 742b8bb..03ce619 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java
@@ -105,7 +105,7 @@
}
}
} finally {
- logger.info("[SEND]:SUCCESS:{}", message);
+// logger.info("[SEND]:SUCCESS:{}", message);
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java
index 527b5d0..0c23ace 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java
@@ -67,8 +67,7 @@
@Override
public void process(RequestEvent evt) {
SIPRequest sipRequest = (SIPRequest)evt.getRequest();
- logger.info("鎺ユ敹鍒版秷鎭細" + evt.getRequest());
- logger.debug("鎺ユ敹鍒版秷鎭細" + evt.getRequest());
+// logger.info("鎺ユ敹鍒版秷鎭細" + evt.getRequest());
String deviceId = SipUtils.getUserIdFromFromHeader(evt.getRequest());
CallIdHeader callIdHeader = sipRequest.getCallIdHeader();
// 鍏堜粠浼氳瘽鍐呮煡鎵�
diff --git a/src/main/resources/logback-spring-local.xml b/src/main/resources/logback-spring-local.xml
index 724d05e..80d1803 100644
--- a/src/main/resources/logback-spring-local.xml
+++ b/src/main/resources/logback-spring-local.xml
@@ -2,16 +2,22 @@
<configuration debug="false">
<!--瀹氫箟鏃ュ織鏂囦欢鐨勫瓨鍌ㄥ湴鍧� -->
<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
- <property name="LOG_HOME" value="logs/${spring.application.name}" />
+ <property name="LOG_HOME" value="logs" />
- <!--<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />-->
+ <substitutionProperty name="log.pattern" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(---){faint} %clr(%-80.80logger{79}){cyan} %clr(:){faint} %m%n%wEx"/>
+
+ <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+ <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+ <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
<!-- 鎺у埗鍙拌緭鍑� -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--鏍煎紡鍖栬緭鍑猴細%d琛ㄧず鏃ユ湡锛�%thread琛ㄧず绾跨▼鍚嶏紝%-5level锛氱骇鍒粠宸︽樉绀�5涓瓧绗﹀搴�%msg锛氭棩蹇楁秷鎭紝%n鏄崲琛岀 -->
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
+ <pattern>${log.pattern}</pattern>
+ <charset>UTF-8</charset>
</encoder>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter" >
<!--涓嶵hresholdFilter鐨勫尯鍒�,鍏佽onmatch-->
<!--璁剧疆鏃ュ織绾у埆 鎺ユ敹info绾у埆鐨勬棩蹇�-->
<level>DEBUG</level>
@@ -32,6 +38,7 @@
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--鏍煎紡鍖栬緭鍑猴細%d琛ㄧず鏃ユ湡锛�%thread琛ㄧず绾跨▼鍚嶏紝%-5level锛氱骇鍒粠宸︽樉绀�5涓瓧绗﹀搴�%msg锛氭棩蹇楁秷鎭紝%n鏄崲琛岀 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
+ <charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!--涓嶵hresholdFilter鐨勫尯鍒�,鍏佽onmatch-->
@@ -53,32 +60,16 @@
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--鏍煎紡鍖栬緭鍑猴細%d琛ㄧず鏃ユ湡锛�%thread琛ㄧず绾跨▼鍚嶏紝%-5level锛氱骇鍒粠宸︽樉绀�5涓瓧绗﹀搴�%msg锛氭棩蹇楁秷鎭紝%n鏄崲琛岀 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
+ <charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!--璁剧疆鏃ュ織绾у埆,杩囨护鎺塱nfo鏃ュ織,鍙緭鍏rror鏃ュ織-->
<level>WARN</level>
- <!-- <onMatch>ACCEPT</onMatch> <!– 鐢ㄨ繃婊ゅ櫒锛屽彧鎺ュ彈ERROR绾у埆鐨勬棩蹇椾俊鎭紝鍏朵綑鍏ㄩ儴杩囨护鎺� –>-->
- <!-- <onMismatch>DENY</onMismatch>-->
</filter>
</appender>
- <!-- 鐢熸垚 druid鏃ュ織杩藉姞 -->
- <appender name="druidSqlRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <!--鍘嗗彶鏃ュ織鏂囦欢杈撳嚭鐨勬枃浠跺悕 -->
- <FileNamePattern>${LOG_HOME}/druid-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
- <!--鏃ュ織鏂囦欢淇濈暀澶╂暟 -->
- <MaxHistory>30</MaxHistory>
- <maxFileSize>50MB</maxFileSize>
- </rollingPolicy>
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <!--鏍煎紡鍖栬緭鍑猴細%d琛ㄧず鏃ユ湡锛�%thread琛ㄧず绾跨▼鍚嶏紝%-5level锛氱骇鍒粠宸︽樉绀�5涓瓧绗﹀搴�%msg锛氭棩蹇楁秷鎭紝%n鏄崲琛岀 -->
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
- </encoder>
- </appender>
-
<!-- 鐢熸垚 SIP鏃ュ織杩藉姞 -->
- <appender name="sipRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <appender name="SipRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--鍘嗗彶鏃ュ織鏂囦欢杈撳嚭鐨勬枃浠跺悕 -->
<FileNamePattern>${LOG_HOME}/sip-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
@@ -89,6 +80,7 @@
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--鏍煎紡鍖栬緭鍑猴細%d琛ㄧず鏃ユ湡锛�%thread琛ㄧず绾跨▼鍚嶏紝%-5level锛氱骇鍒粠宸︽樉绀�5涓瓧绗﹀搴�%msg锛氭棩蹇楁秷鎭紝%n鏄崲琛岀 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
+ <charset>UTF-8</charset>
</encoder>
</appender>
@@ -98,20 +90,13 @@
<appender-ref ref="STDOUT" />
</root>
- <logger name="wvp" level="debug" additivity="true">
+ <logger name="com.genersoft.iot.vmp" level="info" additivity="true">
<appender-ref ref="RollingFileError"/>
<appender-ref ref="RollingFile"/>
</logger>
- <logger name="GB28181_SIP" level="debug" additivity="true">
- <appender-ref ref="RollingFileError"/>
- <appender-ref ref="sipRollingFile"/>
+ <logger name="com.genersoft.iot.vmp.gb28181.conf.StackLoggerImpl" level="info" additivity="true">
+ <appender-ref ref="SipRollingFile" />
</logger>
- <!--璁板綍druid-sql鐨勮褰�-->
- <logger name="com.genersoft.iot.vmp.storager.dao" level="info" additivity="true">
- <!--AppenderRef ref="Console"/-->
- <appender-ref ref="RollingFileError"/>
- <appender-ref ref="druidSqlRollingFile"/>
- </logger>
</configuration>
\ No newline at end of file
--
Gitblit v1.8.0