如何查看客户端日志 / 开启了 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

  1. 将你的手机连上 Xcode;
  2. 在 Xcode 上面的菜单栏上,选 window->device;
  3. 点击你的设备,在下方有个三角箭头,点击下,就能看到打印了。

详细图示 点我查看
注:生产环境打包的 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 调试信息,无法完全关闭日志打印,建议发布时调用
  • 检查是否做了屏蔽日志的操作 「参考开发者的分享 第八点

    1. 屏蔽的操作如下:
      Xcode 8 里 Edit Scheme-> Run -> Arguments,
      在 Environment Variables 里边添加 OS_ACTIVITY_MODE = Disable

    2. 若需要操作 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% 的问题 (ノ◕ω◕)ノଘ_ଘ