Commit d79eec25b06b26491ae07f6f8dc02ba18eb77919
1 parent
b010e63d
优化日志打印,去除数据库打印,优化控制台打印效果
Showing
8 changed files
with
227 additions
and
61 deletions
doc/_content/introduction/deployment.md
| @@ -28,7 +28,7 @@ jar包: | @@ -28,7 +28,7 @@ jar包: | ||
| 28 | nohup java -jar wvp-pro-*.jar & | 28 | nohup java -jar wvp-pro-*.jar & |
| 29 | ``` | 29 | ``` |
| 30 | war包: | 30 | war包: |
| 31 | -下载Tomcat后将war包放入webapps中,启动Tomcat以解压war包,停止Tomcat后,删除ROOT目录以及war包,将解压后的war包目录重命名为ROOT, | 31 | +下载Tomcat后将war包放入webapps中,启动Tomcat以解压war包,停止Tomcat后,删除ROOT目录以及war包,将解压后的war包目录重命名为ROOT,将配置文件中的Server.port配置为与Tomcat端口一致 |
| 32 | 然后启动Tomcat。 | 32 | 然后启动Tomcat。 |
| 33 | **启动ZLM** | 33 | **启动ZLM** |
| 34 | ```shell | 34 | ```shell |
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
| @@ -65,7 +65,7 @@ public class SipLayer implements CommandLineRunner { | @@ -65,7 +65,7 @@ public class SipLayer implements CommandLineRunner { | ||
| 65 | private void addListeningPoint(String monitorIp, int port){ | 65 | private void addListeningPoint(String monitorIp, int port){ |
| 66 | SipStackImpl sipStack; | 66 | SipStackImpl sipStack; |
| 67 | try { | 67 | try { |
| 68 | - sipStack = (SipStackImpl)sipFactory.createSipStack(DefaultProperties.getProperties(monitorIp, false, userSetting.getSipLog())); | 68 | + sipStack = (SipStackImpl)sipFactory.createSipStack(DefaultProperties.getProperties(monitorIp, userSetting.getSipLog())); |
| 69 | } catch (PeerUnavailableException e) { | 69 | } catch (PeerUnavailableException e) { |
| 70 | logger.error("[Sip Server] SIP服务启动失败, 监听地址{}失败,请检查ip是否正确", monitorIp); | 70 | logger.error("[Sip Server] SIP服务启动失败, 监听地址{}失败,请检查ip是否正确", monitorIp); |
| 71 | return; | 71 | return; |
src/main/java/com/genersoft/iot/vmp/gb28181/conf/DefaultProperties.java
| @@ -12,7 +12,7 @@ import java.util.Properties; | @@ -12,7 +12,7 @@ import java.util.Properties; | ||
| 12 | */ | 12 | */ |
| 13 | public class DefaultProperties { | 13 | public class DefaultProperties { |
| 14 | 14 | ||
| 15 | - public static Properties getProperties(String ip, boolean isDebug, boolean sipLog) { | 15 | + public static Properties getProperties(String ip, boolean sipLog) { |
| 16 | Properties properties = new Properties(); | 16 | Properties properties = new Properties(); |
| 17 | properties.setProperty("javax.sip.STACK_NAME", "GB28181_SIP"); | 17 | properties.setProperty("javax.sip.STACK_NAME", "GB28181_SIP"); |
| 18 | properties.setProperty("javax.sip.IP_ADDRESS", ip); | 18 | properties.setProperty("javax.sip.IP_ADDRESS", ip); |
| @@ -25,9 +25,6 @@ public class DefaultProperties { | @@ -25,9 +25,6 @@ public class DefaultProperties { | ||
| 25 | */ | 25 | */ |
| 26 | 26 | ||
| 27 | // * gov/nist/javax/sip/SipStackImpl.class | 27 | // * gov/nist/javax/sip/SipStackImpl.class |
| 28 | - if (isDebug) { | ||
| 29 | - properties.setProperty("gov.nist.javax.sip.LOG_MESSAGE_CONTENT", "false"); | ||
| 30 | - } | ||
| 31 | // 接收所有notify请求,即使没有订阅 | 28 | // 接收所有notify请求,即使没有订阅 |
| 32 | properties.setProperty("gov.nist.javax.sip.DELIVER_UNSOLICITED_NOTIFY", "true"); | 29 | properties.setProperty("gov.nist.javax.sip.DELIVER_UNSOLICITED_NOTIFY", "true"); |
| 33 | properties.setProperty("gov.nist.javax.sip.AUTOMATIC_DIALOG_ERROR_HANDLING", "false"); | 30 | properties.setProperty("gov.nist.javax.sip.AUTOMATIC_DIALOG_ERROR_HANDLING", "false"); |
| @@ -50,29 +47,13 @@ public class DefaultProperties { | @@ -50,29 +47,13 @@ public class DefaultProperties { | ||
| 50 | */ | 47 | */ |
| 51 | Logger logger = LoggerFactory.getLogger(AlarmNotifyMessageHandler.class); | 48 | Logger logger = LoggerFactory.getLogger(AlarmNotifyMessageHandler.class); |
| 52 | if (sipLog) { | 49 | if (sipLog) { |
| 53 | - if (logger.isDebugEnabled()) { | ||
| 54 | - System.out.println("DEBUG"); | ||
| 55 | - properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "DEBUG"); | ||
| 56 | - }else if (logger.isInfoEnabled()) { | ||
| 57 | - System.out.println("INFO1"); | ||
| 58 | - properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "INFO"); | ||
| 59 | - }else if (logger.isWarnEnabled()) { | ||
| 60 | - System.out.println("WARNING"); | ||
| 61 | - properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "WARNING"); | ||
| 62 | - }else if (logger.isErrorEnabled()) { | ||
| 63 | - System.out.println("ERROR"); | ||
| 64 | - properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "ERROR"); | ||
| 65 | - }else { | ||
| 66 | - System.out.println("INFO2"); | ||
| 67 | - properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "INFO"); | ||
| 68 | - } | ||
| 69 | - logger.info("[SIP日志]级别为: {}", properties.getProperty("gov.nist.javax.sip.TRACE_LEVEL")); | 50 | + properties.setProperty("gov.nist.javax.sip.STACK_LOGGER", "com.genersoft.iot.vmp.gb28181.conf.StackLoggerImpl"); |
| 51 | + properties.setProperty("gov.nist.javax.sip.SERVER_LOGGER", "com.genersoft.iot.vmp.gb28181.conf.ServerLoggerImpl"); | ||
| 52 | + properties.setProperty("gov.nist.javax.sip.LOG_MESSAGE_CONTENT", "true"); | ||
| 53 | + logger.info("[SIP日志]已开启"); | ||
| 70 | }else { | 54 | }else { |
| 71 | logger.info("[SIP日志]已关闭"); | 55 | logger.info("[SIP日志]已关闭"); |
| 72 | } | 56 | } |
| 73 | - | ||
| 74 | - | ||
| 75 | - | ||
| 76 | return properties; | 57 | return properties; |
| 77 | } | 58 | } |
| 78 | } | 59 | } |
src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java
0 → 100644
| 1 | +package com.genersoft.iot.vmp.gb28181.conf; | ||
| 2 | + | ||
| 3 | +import gov.nist.core.ServerLogger; | ||
| 4 | +import gov.nist.core.StackLogger; | ||
| 5 | +import gov.nist.javax.sip.message.SIPMessage; | ||
| 6 | +import gov.nist.javax.sip.stack.SIPTransactionStack; | ||
| 7 | + | ||
| 8 | +import javax.sip.SipStack; | ||
| 9 | +import java.util.Properties; | ||
| 10 | + | ||
| 11 | +public class ServerLoggerImpl implements ServerLogger { | ||
| 12 | + | ||
| 13 | + private boolean showLog = true; | ||
| 14 | + | ||
| 15 | + private SIPTransactionStack sipStack; | ||
| 16 | + | ||
| 17 | + protected StackLogger stackLogger; | ||
| 18 | + | ||
| 19 | + @Override | ||
| 20 | + public void closeLogFile() { | ||
| 21 | + | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + @Override | ||
| 25 | + public void logMessage(SIPMessage message, String from, String to, boolean sender, long time) { | ||
| 26 | + if (!showLog) { | ||
| 27 | + return; | ||
| 28 | + } | ||
| 29 | + StringBuilder stringBuilder = new StringBuilder(); | ||
| 30 | + stringBuilder.append(!sender? "发送:目标--->" + from:"接收:来自--->" + to) | ||
| 31 | + .append("\r\n") | ||
| 32 | + .append(message); | ||
| 33 | + this.stackLogger.logInfo(stringBuilder.toString()); | ||
| 34 | + | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + @Override | ||
| 38 | + public void logMessage(SIPMessage message, String from, String to, String status, boolean sender, long time) { | ||
| 39 | + if (!showLog) { | ||
| 40 | + return; | ||
| 41 | + } | ||
| 42 | + StringBuilder stringBuilder = new StringBuilder(); | ||
| 43 | + stringBuilder.append(!sender? "发送: 目标->" + from :"接收:来自->" + to) | ||
| 44 | + .append("\r\n") | ||
| 45 | + .append(message); | ||
| 46 | + this.stackLogger.logInfo(stringBuilder.toString()); | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + @Override | ||
| 50 | + public void logMessage(SIPMessage message, String from, String to, String status, boolean sender) { | ||
| 51 | + if (!showLog) { | ||
| 52 | + return; | ||
| 53 | + } | ||
| 54 | + StringBuilder stringBuilder = new StringBuilder(); | ||
| 55 | + stringBuilder.append(!sender? "发送: 目标->" + from :"接收:来自->" + to) | ||
| 56 | + .append("\r\n") | ||
| 57 | + .append(message); | ||
| 58 | + this.stackLogger.logInfo(stringBuilder.toString()); | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + @Override | ||
| 62 | + public void logException(Exception ex) { | ||
| 63 | + if (!showLog) { | ||
| 64 | + return; | ||
| 65 | + } | ||
| 66 | + this.stackLogger.logException(ex); | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + @Override | ||
| 70 | + public void setStackProperties(Properties stackProperties) { | ||
| 71 | + if (!showLog) { | ||
| 72 | + return; | ||
| 73 | + } | ||
| 74 | + String TRACE_LEVEL = stackProperties.getProperty("gov.nist.javax.sip.TRACE_LEVEL"); | ||
| 75 | + if (TRACE_LEVEL != null) { | ||
| 76 | + showLog = true; | ||
| 77 | + } | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + @Override | ||
| 81 | + public void setSipStack(SipStack sipStack) { | ||
| 82 | + if (!showLog) { | ||
| 83 | + return; | ||
| 84 | + } | ||
| 85 | + if(sipStack instanceof SIPTransactionStack) { | ||
| 86 | + this.sipStack = (SIPTransactionStack)sipStack; | ||
| 87 | + this.stackLogger = this.sipStack.getStackLogger(); | ||
| 88 | + } | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + | ||
| 92 | +} |
src/main/java/com/genersoft/iot/vmp/gb28181/conf/StackLoggerImpl.java
0 → 100644
| 1 | +package com.genersoft.iot.vmp.gb28181.conf; | ||
| 2 | + | ||
| 3 | +import gov.nist.core.StackLogger; | ||
| 4 | +import org.slf4j.Logger; | ||
| 5 | +import org.slf4j.LoggerFactory; | ||
| 6 | +import org.springframework.stereotype.Component; | ||
| 7 | + | ||
| 8 | +import java.util.Properties; | ||
| 9 | + | ||
| 10 | +@Component | ||
| 11 | +public class StackLoggerImpl implements StackLogger { | ||
| 12 | + | ||
| 13 | + private final static Logger logger = LoggerFactory.getLogger(StackLoggerImpl.class); | ||
| 14 | + | ||
| 15 | + @Override | ||
| 16 | + public void logStackTrace() { | ||
| 17 | + | ||
| 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 | + } | ||
| 109 | +} |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java
| @@ -67,8 +67,7 @@ public class MessageRequestProcessor extends SIPRequestProcessorParent implement | @@ -67,8 +67,7 @@ public class MessageRequestProcessor extends SIPRequestProcessorParent implement | ||
| 67 | @Override | 67 | @Override |
| 68 | public void process(RequestEvent evt) { | 68 | public void process(RequestEvent evt) { |
| 69 | SIPRequest sipRequest = (SIPRequest)evt.getRequest(); | 69 | SIPRequest sipRequest = (SIPRequest)evt.getRequest(); |
| 70 | - logger.info("接收到消息:" + evt.getRequest()); | ||
| 71 | - logger.debug("接收到消息:" + evt.getRequest()); | 70 | +// logger.info("接收到消息:" + evt.getRequest()); |
| 72 | String deviceId = SipUtils.getUserIdFromFromHeader(evt.getRequest()); | 71 | String deviceId = SipUtils.getUserIdFromFromHeader(evt.getRequest()); |
| 73 | CallIdHeader callIdHeader = sipRequest.getCallIdHeader(); | 72 | CallIdHeader callIdHeader = sipRequest.getCallIdHeader(); |
| 74 | // 先从会话内查找 | 73 | // 先从会话内查找 |
src/main/resources/logback-spring-local.xml
| @@ -2,16 +2,22 @@ | @@ -2,16 +2,22 @@ | ||
| 2 | <configuration debug="false"> | 2 | <configuration debug="false"> |
| 3 | <!--定义日志文件的存储地址 --> | 3 | <!--定义日志文件的存储地址 --> |
| 4 | <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/> | 4 | <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/> |
| 5 | - <property name="LOG_HOME" value="logs/${spring.application.name}" /> | 5 | + <property name="LOG_HOME" value="logs" /> |
| 6 | + | ||
| 7 | + <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"/> | ||
| 8 | + | ||
| 9 | + <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/> | ||
| 10 | + <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/> | ||
| 11 | + <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/> | ||
| 6 | 12 | ||
| 7 | - <!--<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)" />--> | ||
| 8 | <!-- 控制台输出 --> | 13 | <!-- 控制台输出 --> |
| 9 | <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> | 14 | <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> |
| 10 | <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | 15 | <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> |
| 11 | <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> | 16 | <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> |
| 12 | - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern> | 17 | + <pattern>${log.pattern}</pattern> |
| 18 | + <charset>UTF-8</charset> | ||
| 13 | </encoder> | 19 | </encoder> |
| 14 | - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> | 20 | + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" > |
| 15 | <!--与ThresholdFilter的区别,允许onmatch--> | 21 | <!--与ThresholdFilter的区别,允许onmatch--> |
| 16 | <!--设置日志级别 接收info级别的日志--> | 22 | <!--设置日志级别 接收info级别的日志--> |
| 17 | <level>DEBUG</level> | 23 | <level>DEBUG</level> |
| @@ -32,6 +38,7 @@ | @@ -32,6 +38,7 @@ | ||
| 32 | <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | 38 | <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> |
| 33 | <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> | 39 | <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> |
| 34 | <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern> | 40 | <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern> |
| 41 | + <charset>UTF-8</charset> | ||
| 35 | </encoder> | 42 | </encoder> |
| 36 | <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> | 43 | <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> |
| 37 | <!--与ThresholdFilter的区别,允许onmatch--> | 44 | <!--与ThresholdFilter的区别,允许onmatch--> |
| @@ -53,32 +60,16 @@ | @@ -53,32 +60,16 @@ | ||
| 53 | <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | 60 | <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> |
| 54 | <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> | 61 | <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> |
| 55 | <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern> | 62 | <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern> |
| 63 | + <charset>UTF-8</charset> | ||
| 56 | </encoder> | 64 | </encoder> |
| 57 | <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> | 65 | <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> |
| 58 | <!--设置日志级别,过滤掉info日志,只输入error日志--> | 66 | <!--设置日志级别,过滤掉info日志,只输入error日志--> |
| 59 | <level>WARN</level> | 67 | <level>WARN</level> |
| 60 | - <!-- <onMatch>ACCEPT</onMatch> <!– 用过滤器,只接受ERROR级别的日志信息,其余全部过滤掉 –>--> | ||
| 61 | - <!-- <onMismatch>DENY</onMismatch>--> | ||
| 62 | </filter> | 68 | </filter> |
| 63 | </appender> | 69 | </appender> |
| 64 | 70 | ||
| 65 | - <!-- 生成 druid日志追加 --> | ||
| 66 | - <appender name="druidSqlRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
| 67 | - <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> | ||
| 68 | - <!--历史日志文件输出的文件名 --> | ||
| 69 | - <FileNamePattern>${LOG_HOME}/druid-%d{yyyy-MM-dd}.%i.log</FileNamePattern> | ||
| 70 | - <!--日志文件保留天数 --> | ||
| 71 | - <MaxHistory>30</MaxHistory> | ||
| 72 | - <maxFileSize>50MB</maxFileSize> | ||
| 73 | - </rollingPolicy> | ||
| 74 | - <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | ||
| 75 | - <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> | ||
| 76 | - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern> | ||
| 77 | - </encoder> | ||
| 78 | - </appender> | ||
| 79 | - | ||
| 80 | <!-- 生成 SIP日志追加 --> | 71 | <!-- 生成 SIP日志追加 --> |
| 81 | - <appender name="sipRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> | 72 | + <appender name="SipRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| 82 | <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> | 73 | <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
| 83 | <!--历史日志文件输出的文件名 --> | 74 | <!--历史日志文件输出的文件名 --> |
| 84 | <FileNamePattern>${LOG_HOME}/sip-%d{yyyy-MM-dd}.%i.log</FileNamePattern> | 75 | <FileNamePattern>${LOG_HOME}/sip-%d{yyyy-MM-dd}.%i.log</FileNamePattern> |
| @@ -89,6 +80,7 @@ | @@ -89,6 +80,7 @@ | ||
| 89 | <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | 80 | <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> |
| 90 | <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> | 81 | <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> |
| 91 | <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern> | 82 | <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern> |
| 83 | + <charset>UTF-8</charset> | ||
| 92 | </encoder> | 84 | </encoder> |
| 93 | </appender> | 85 | </appender> |
| 94 | 86 | ||
| @@ -98,20 +90,13 @@ | @@ -98,20 +90,13 @@ | ||
| 98 | <appender-ref ref="STDOUT" /> | 90 | <appender-ref ref="STDOUT" /> |
| 99 | </root> | 91 | </root> |
| 100 | 92 | ||
| 101 | - <logger name="wvp" level="debug" additivity="true"> | 93 | + <logger name="com.genersoft.iot.vmp" level="info" additivity="true"> |
| 102 | <appender-ref ref="RollingFileError"/> | 94 | <appender-ref ref="RollingFileError"/> |
| 103 | <appender-ref ref="RollingFile"/> | 95 | <appender-ref ref="RollingFile"/> |
| 104 | </logger> | 96 | </logger> |
| 105 | 97 | ||
| 106 | - <logger name="GB28181_SIP" level="debug" additivity="true"> | ||
| 107 | - <appender-ref ref="RollingFileError"/> | ||
| 108 | - <appender-ref ref="sipRollingFile"/> | 98 | + <logger name="com.genersoft.iot.vmp.gb28181.conf.StackLoggerImpl" level="info" additivity="true"> |
| 99 | + <appender-ref ref="SipRollingFile" /> | ||
| 109 | </logger> | 100 | </logger> |
| 110 | 101 | ||
| 111 | - <!--记录druid-sql的记录--> | ||
| 112 | - <logger name="com.genersoft.iot.vmp.storager.dao" level="info" additivity="true"> | ||
| 113 | - <!--AppenderRef ref="Console"/--> | ||
| 114 | - <appender-ref ref="RollingFileError"/> | ||
| 115 | - <appender-ref ref="druidSqlRollingFile"/> | ||
| 116 | - </logger> | ||
| 117 | </configuration> | 102 | </configuration> |
| 118 | \ No newline at end of file | 103 | \ No newline at end of file |