简介

音视频产品、即时通信都有默认把sdk运行的log输出到本地文件,腾讯云技术支持在帮忙定位问题时,需要这些运行log分析问题。默认输出文件的路径如下表格。可修改输出文件路径、可过滤日志等级、可关闭日志输出。

本地log路径

sdk 产品线 平台 日志路径
LiteAVSDK [UGC](https://cloud.tencent.com/document/product/584) iOS&安卓 iOS&Mac: sandbox的Documents/log

Android: /sdcard/log/tencent/liteav (6.7以前的版本);
/sdcard/Android/data/packagename/files/log/tencent/liteav/LiteAV\_日期.xlog(6.8之后的版本); /sdcard/Android/data/packagename/files/log/liteav/LiteAV\_日期.xlog(8.5之后的版本)
补充1:packagename是指安卓app的包名
补充2:9.9版本后,日志文件是后缀名.cLog文件

Windows: %appdata%/tencent/liteav/log (8.7之前的版本);C:\Users\{userId}\AppData\Roaming\liteav\log(8.8之后的版本)

Web: 打开浏览器控制台,或使用vConsole记录 SDK 打印信息

小程序: 启用标签的debug属性,使用vConsole记录打印信息
[Player](https://cloud.tencent.com/document/product/881) iOS&安卓&web
[Smart](https://cloud.tencent.com/document/product/454) iOS&安卓&小程序
[TRTC](https://cloud.tencent.com/document/product/647) iOS&Mac&安卓&小程序&Windows&Web
[Professional](https://cloud.tencent.com/document/product/454/7873#Professional) iOS&安卓
[Enterprise](https://cloud.tencent.com/document/product/454/7873#Enterprise) iOS&安卓
IMSDK [IM](https://cloud.tencent.com/document/product/269) iOS&Mac&安卓&小程序&Windows&Web iOS&Mac:日志默认路径在 App 目录下:Library/Caches/imsdk\_C\_YYYYMMDD.xlog

安卓:默认日志存储路径为:SD 卡下,/tencent/imsdklogs/packageName/(4.8.10以前的版本路径);
/sdcard/Android/data/packageName)/files/log/tencent/imsdk/imsdk\_日期.xlog(4.8.50版本修改成这个新路径了)

Windows:.exe文件的同级目录

Web: 打开浏览器控制台,或使用vConsole记录 SDK 打印信息

小程序: 使用vConsole记录打印信息

修改log路径

sdk 产品线 平台 修改
LiteAVSDK Smart
UGC
Player
Professional
Enterprise
iOS&Mac //设置日志输出等级,最高级可关闭
[TXLiveBase setLogLevel:LOGLEVEL\_DEBUG];
安卓 //设置日志输出等级,,最高级可关闭
TXLiveBase.setLogLevel(TXLiveConstants.LOG\_LEVEL\_DEBUG);
TRTC iOS&Mac //设置输出 Log 级别,最高级可关闭
[TRTCCloud setLogLevel:TRTCLogLevelDebug]
//修改日志路径
[TRTCCloud setLogDirPath:(NSString \*)path]
安卓 //设置输出 Log 级别,最高级可关闭
trtcCloud.setLogLevel(TRTCCloudDef.TRTC\_LOG\_LEVEL\_DEBUG);
//修改日志路径
trtcCloud.setLogDirPath(string);
Windows //设置输出 Log 级别,最高级可关闭
getTRTCCloud()->setLogLevel(TRTC\_LOG\_LEVEL\_DEBUG);
//修改日志路径
getTRTCCloud()->setLogDirPath(const char \* path);
IMSDK IM iOS&Mac @interface TIMSdkConfig : NSObject
//本地写 log 文件的等级,最高级可关闭
@property(nonatomic,assign) TIMLogLevel logLevel;
//log 文件路径,不设置时为默认路径
@property(nonatomic,retain) NSString \* logPath;
安卓 //设置写日志等级,最高级可关闭
TIMSdkConfig setLogLevel(@NonNull TIMLogLevel logLevel)
//设置日志路径,不设置时为默认路径
TIMSdkConfig setLogPath(@NonNull String logPath)
Windows static const char\* kTIMSdkConfigConfigFilePath ="sdk\_config\_log\_file\_path"

std::string json\_init\_cfg;

Json::Value json\_value\_init;
json\_value\_init[kTIMSdkConfigConfigFilePath] = path;

TIMInit(sdk\_app\_id, json\_value\_init.toStyledString().c\_str());

取log常见做法

运行log只输出到用户手机本地,如果是线上项目,向用户取日志往往比较难,建议开发过程中,将手机本地日志上传到自己的存储服务器,方便取日志。

强烈推荐!!!

查看log文件

LiteAVSDK

LiteAVSDK 为了减少 log 的存储体积,对本地存储的 log 文件做了加密,并且限制了 log 数量的大小,所以要查看 log 的文本内容,需要使用 log解压缩工具

sdk版本9.9之后,日志加密方式改变了,生成的文件是后缀.cLog的文件。新版本的解压缩工具

工具说明:
1、在你电脑系统要有 python 2.x 环境
2、在终端运行 python decode_mars_log_file.py 就行了(xlog 文件要和 decode_mars_log_file.py放在同一目录下)

IMSDK

IMSDK4.5以前的版本,log文件没有加密,可以直接搜索各个关键事件(version、login、logout、send msg、get msg、recv push、create group、join group、quit group)。

IMSDK4.6以后的版本,log文件加密了,文件后缀是xlog,需要用im解压缩工具解压打开

工具说明:同上

补充说明:
IM消息通信问题,一般需要排查收发两端,所以提供出问题的手机log时,也请提供一下对端的日志,
方便查看发/收消息是否正常。

crash日志

开发过程中遇到crash,或者线上反馈crash,就无法只靠运行log排查定位了。需要排查crash的堆栈信息。

收集crash堆栈信息,有两种方式:

1、手动复现

把手机连接开发工具,操作复现,如果crash了,开发工具的logcat里面,会输出crash堆栈,把logcat日志复制出来,贴成txt文本文件,把文件发给腾讯支持人员。

2、上报堆栈

可以在工程中集成上报crash到云端的三方sdk,比如腾讯bugly

1、bugly会记录crash堆栈,聚合机型、crash数量、时间点等信息,捕获的信息更全面,推荐集成。
2、bugly页面有查看权限,需要添加腾讯支持人员的QQ号(204356973腾讯云helper、3531448318崩溃专用排查qq号)查看权限,
添加完成后,把crash的bugly页面链接,发给腾讯支持人员。腾讯支持人员就可以登录QQ号,去查看该页面的crash堆栈了。

取sdk版本号

排查crash堆栈,需要确认sdk版本号:

sdk 平台 api
LiteAVSDK 安卓 TXLiveBase.getSDKVersionStr();
ios/mac [TXLiveBase getSDKVersionStr]
小程序 查看手机微信版本。音视频小程序组件版本,是随微信版本发布的。
webrtc 查看引入的trtc-js-sdk文件版本
windows ITRTCCloud.getTRTCShareInstance().getSDKVersion();
IMSDK 安卓 TIMManager.getInstance().getVersion();
ios/mac [[TIMManager sharedInstance] GetVersion];
小程序/webim 查看引入tim-js-sdk文件版本
windows TIMGetSDKVersion();

LiteAVSDK -> 安卓 -> log相关api文档;

LiteAVSDK -> ios&Mac -> log相关api文档;

IMSDK -> 安卓 -> log相关api文档;

IMSDK -> ios&Mac -> log相关文档:

TRTC日志打印类似于LiteAVSDK,参考《腾讯实时音视频(TRTC)如何打印日志》

文章来源于腾讯云开发者社区,点击查看原文