package com.genersoft.iot.vmp.gb28181.conf; import gov.nist.core.CommonLogger; 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 = CommonLogger.getLogger(SIPTransactionStack.class); } } }