一个app 在未正式发布之前 会有很多问题
如果是崩溃问题,则有线上的bugly来查看崩了日志
只要集成了bugly 就可以查看日志了
但这样存在弊端,一是网络不好的时候 日志没有记录到
二是很多时候日志只有崩溃的这一个时刻,没有上下文
环境,如果不是一般性错误,很难知道其具体原因
而我们在开发的过程中,能够时时刻刻看到打印的消息
同时还支持断点的调试功能,因此排错非常快
我希望将类似的东西增加到项目中,最开始是想按照悬浮窗
的形式出现,点击就可以看到最新的日志,webview 的vsconcle
就是这种思路的
我在网上找了一个封装好的类似控件尝试了一下,demo跑起来是
可以的,但加入到项目中就发现问题特别严重,因为日志的数据量
是相当庞大的,ui刷新的显示在小屏幕上速度飞快,会造成机器的卡顿
用户体验相当差。
那么有没有别的解决办法呢?
我们知道sdk 开发,sdk封装好了给用户,用户如果对sdk的某项功能
提出了质疑,那么sdk厂商是相信自己的代码还是用户呢,其实sdk厂商
都提供了日志写入的服务,将每一步操作都一丝不苟的写入用户提供的路径
然后让用户从沙盒或者其他地方导出给sdk厂商,以此来判断用户所处的情况,再判断sdk是否出了问题。
那么ios 也是能够将日志写入沙盒的,就是捕获终端的所有输入,再加上
崩溃日志,把这些重定向到你的沙盒就完了。
stdout
可以关注一下这个两个系统打印,重定向到你的沙盒。
写入沙盒后难道每次都要把手机给开发者,让开发者把日志从沙盒里面拷贝
出来么?
其实不用的,只需要给你的日志增加一个分享的功能即可,苹果官方就有
UIDocumentInteractionController
这个就是专门用来做分享的类,你只要找到你对应的日志,分享给你的电脑
,你自己就可以看了,分享给开发者,就免去了开发者从你手机中拷贝你日志的时间浪费。
除此之外,为了防止在项目中用户体验不好,可以把日志分享加到摇一摇中,避免阻挡用户视觉,而日志总是在不断记录的,所以每次日志加个时间戳,就可以看到是什么时间点记录的日志,防止日志过大,项目中可以控制开始日志记录和结束日志记录来防止不必要的日志记录,造成app缓存越来越大的问题,当然可以做7天日志删除这类功能,不过都是锦上添花了。
这个是我整个日志分享从思考到实现的整个过程。