前言
WebRTC 默认日志打印到控制台,如果需要打印到文件或网络,需要自己继承并实现LogSink这个类的接口。即在OnLogMessage 函数里面完成日志的输出(写磁盘文件,写网络socket等)。庆幸的是webrtc中的FileRotatingLogSink类帮助我们实现日志写入磁盘文件,并且FileRotatingLogSink能控制文件大小,文件个数,实现日志文件回滚,同时能控制日志文件缓存等
代码
#include "rtc_base/logging.h"
#include "rtc_base/log_sinks.h"
rtc::FileRotatingLogSink* pLog = new rtc::FileRotatingLogSink("D:/", "webrtc.log", 1024*1024*10, 10);
pLog->Init();
rtc::LogMessage::AddLogToStream(pLog, rtc::LS_WARNING);
编译错误解决
undefined symbol: rtc::FileRotatingLogSink::Init解决方案_宁静致远的技术博客_51CTO博客
扩展
using namespace rtc;
class CMyFileLog : public LogSink
{
public:
virtual void OnLogMessage(const std::string& message)
{
std::stringstream ss;
ss << message << std::endl;
OutputDebugStringA(ss.str().c_str());
}
};
CMyFileLog *pFrls = new CMyFileLog();
rtc::LogMessage::AddLogToStream(pFrls, rtc::LS_WARNING);
标签:文件,FileRotatingLogSink,rtc,pLog,日志,WebRTC,CMyFileLog
From: https://blog.51cto.com/fengyuzaitu/7447046