如何查看客户端日志 / 开启了 debug 依旧看不到日志
客户端日志的重要性
一般出现问题时,首先要做的便是看看此时的日志信息,可以找到相关的提示和报错。
如果需要官方帮忙分析问题,提供完整的日志信息 也是避免无效沟通的关键。
筛选极光项目的关键字:jiguang。每个 SDK 还会有专门的标识 JPush、JMessage、JShare 等 ,但如果要看到完整的日志,请直接筛选 jiguang 这个统一的 tag。
开启客户端日志的接口,集成了哪一个 SDK ,则对应加上该产品的接口。没有集成的不要写
Android:(在 init 初始化之前调用!!!)
JPushInterface.setDebugMode(true); // 设置开启极光推送(JPush)的日志,发布时请关闭日志
JMessageClient.setDebugMode(true); // 设置开启极光 IM (JMessage)的日志,发布时请关闭日志
JAnalyticsInterface.setDebugMode(true); // 设置开启极光统计(JAnalytics)的日志,发布时请关闭日志
JShareInterface.setDebugMode(true); // 设置开启极光分享(JShare)的日志,发布时请关闭日志
SMSSDK.getInstance().setDebugMode(true); // 设置开启极光短信(JSMS)的日志,发布时请关闭日志
JVerificationInterface.setDebugMode(true); // 设置开启极光认证(JVerificationInterface)的日志,发布时请关闭日志
iOS:
[JPUSHService setDebugMode]; //在 application 里面调用,设置开启 JPush 日志
[JMessage setDebugMode]; //在 application 里面调用,设置开启 JMessage 日志
[JANALYTICSService setDebug:YES]; //在 application 里面调用,设置开启 JAnalytics 日志
[JSHAREService setDebug:YES]; //在 application 里面调用,设置开启 JShare 日志
JPush ios 文档说明点我
JAnalytics ios 文档说明点我
JShare ios 文档说明点我
查看客户端日志的具体方法
iOS
- 将你的手机连上 Xcode;
- 在 Xcode 上面的菜单栏上,选 window->device;
- 点击你的设备,在下方有个三角箭头,点击下,就能看到打印了。
详细图示 点我查看
注:生产环境打包的 IPA ,只要开启 debug,也可以看到日志
Android
1、直接 Androidstudio 调试,看 logcat,如图所示,注意不要筛选具体的进程。
2、获取 手机上的日志:如果你集成的是 JMessage,则命令改为 logjmessage.txt,集成 Jshare,则改为 logjshare.txt,其余的 SDK 类似。
usb 连接手机
进入终端( windows 系统下的 cmd )执行adb logcat -f /sdcard/logjpush.txt 命令
如果 adb 命令没用,说明你的环境变量里面没有配置 Android 环境变量,如何配置请自行Google*
启动 demo 工程
退出 adb 命令,随便进入一个磁盘。执行 adb pull /sdcard/logjpush.txt (或者您自己去手机的 sdcard 找到 logjpush.txt 这个文件拷贝出来)
将 logjpush.txt 上传在提问帖中。
Android 调用了接口后依旧看不到更多的日志
部分手机上测试时需要一些特定的方案去打开日志权限,具体请根据手机机型搜索。
- 魅族:设置–辅助功能–开发者选项–性能优化–高级日志输出--全部允许(默认部分允许)
- 华为:手机拨号,输入
*#*#2846579#*#*
会自动进入工程菜单界面,选择后台设置--LOG设置--AP日志
- 检查是否开启了多进程( AndroidManifest 里 android:process 属性),当前看的日志是否是分离进程的日志,可以去掉多进程后再看看
iOS 调用接口开启后依旧没有日志
检查是否又调用了关闭日志的接口
[JPUSHService setLogOFF];//设置关闭 JPush 调试信息,无法完全关闭日志打印,建议发布时调用 [JMessage setLogOFF];//设置关闭 JMessage 调试信息,无法完全关闭日志打印,建议发布时调用
检查是否做了屏蔽日志的操作 「参考开发者的分享 第八点」
屏蔽的操作如下:
Xcode 8 里 Edit Scheme-> Run -> Arguments,
在 Environment Variables 里边添加 OS_ACTIVITY_MODE = Disable若需要操作 1 来屏蔽一些无用日志而有用的日志依旧输出,可以自定义一个宏定义,来做日志输出。
#ifdef DEBUG #define DDLOG(...) printf(" %s\n",[[NSString stringWithFormat:__VA_ARGS__]UTF8String]); #define DDLOG_CURRENT_METHOD NSLog(@"%@-%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd)) #else #define DDLOG(...) ; #define DDLOG_CURRENT_METHOD ; #endif
如果对你有帮助,点个赞 呗ლ(╹◡╹ლ)
点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ
0条评论