From 5cae58c69129631c80c611d1870c3a20721cebf4 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 14 二月 2023 10:04:48 +0800 Subject: [PATCH] Merge branch 'wvp-28181-2.0' into main2 --- 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