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); 
 | 
        } 
 | 
    } 
 | 
} 
 |