回调webrtc底层日志到应用层

1.创建子类继承::rtc::LogSink底层日志类

enum LoggingSeverity {
  LS_VERBOSE,
  LS_INFO,
  LS_WARNING,
  LS_ERROR,
  LS_NONE,
};

class RtcFileLog : public ::rtc::LogSink {
    int SetLogFile(const char* filePath);
    int SetLogFileSize(unsigned int size);
}

// 非android
void RtcFileLog::OnLogMessage(const std::string& msg, 
::rtc::LoggingSeverity severity) {
    ...写文件
}
    
// android
void RtcFileLog::OnLogMessage(const std::string& msg, 
    ::rtc::LoggingSeverity severity, const char* tag) {
   ...写文件
}

2.创建::rtc::LogSink日志子类,设置回调类到rtc底层进行日志上报

std::unique_ptr<RtcFileLog> m_rtcFileLog;
if (!m_rtcFileLog){
    m_rtcFileLog.reset(new RtcFileLog());
}
//初始化日志模块
rtc::LogMessage::LogToDebug(::rtc::LS_INFO);
rtc::LogMessage::LogTimestamps(true);
rtc::LogMessage::LogThreads(true);
//设置写文件路径
m_rtcFileLog->SetLogFile(log_path.c_str());
//添加实现类
rtc::LogMessage::RemoveLogToStream(m_rtcFileLog.get());
rtc::LogMessage::AddLogToStream(m_rtcFileLog.get(), ::rtc::LS_INFO);
经验分享 程序员 微信小程序 职场和发展