查看输出日志和增删改查本地缓存字段的调试工具

在我们实际开发中经常要配合测试进行debug,在真机上测试的时候很难看到控制台的输出日志。真机连接在电脑上进行测试的时候还好,但是有些功能测试的时候可能需要程序杀死重新打开。比如在测试推送功能的时候,需要测试程序在杀死的情况下收到推送怎么处理。这个时候很难看到推送内容是什么,要想根据推送内容写具体的处理逻辑就很不方便了。比如程序莫名其妙地闪退了,你想定位bug却很难看到奔溃日志?比如想查看真机上沙盒中保存的某个值?再比如测试人员在测试过程中想查看当前加载的网页的完整链接(包括自己拼接的参数等等)?😂。这个时候是不是很想来一个不影响程序的正常运行又可以实时查看打印日志的轮子😉?

这个小工具实现了以下功能:

  • 每次程序启动就新建一个以当前时间命名的日志文件。
  • 自定义打印日志的方法,调用后将把日志记录于文件中。
  • 重定向NSLog输出日志到文件中,这样你就不用替换到你项目中已有的NSLog()代码啦。
  • 重定向程序奔溃日志到文件中。
  • 自动根据当前设备信息选择要不要记录日志的同时把日志打印到控制台。
  • 方便查看当前沙盒中保存的键值对。

看完介绍是不是心情有点小激动甚至想“来一发”😂?

使用方法

  • 将DebugWindow文件夹下的类引入你的项目。
  • 在程序启动时调用[YLDebugWindow startDebug]方法开启日志记录。
  • 如果需要自定义打印日志,调用YLLog()方法,你也可以根据自己实际情况修改该方法。

注意事项

  • 建议在往沙盒中存数据的时候将所有key都带上特定前缀,比如我这里是"kYL"开头的,这样在获取沙盒中键值对的时候方便只看自己保存的键值对。
  • 默认在模拟器上和真机连接在电脑上的时候是不把NSLog输出和异常输出日志记录到文件中的,如果需要在模拟器上看效果,可以修改YLLogTool的needRedirect方法。

目前存在的问题以及待实现功能

  • 问题:重定向程序原有的NSLog输出日志中,中文显示乱码问题。目前没有找到解决办法,建议尽量用英文输出。😩
  • 待实现:动态更改沙盒中保存的键值对来方便调试。

效果图

参考

总结

在真机上测试的时候快速查看日志,这一直是我实际开发中的一个需要。这个小工具是最近一周工作之余研究的结果,非常感谢网络上已有的技术文章对我的帮助和启发。如有bug或者其他建议,请在DebugWindow反馈给我,谢谢。

更新记录

---2017-05-11---

- 使用UIWebView替代QLPreviewController来预览日志文件。
- 解决中文乱码问题。
- 在日志文件中搜索并高亮字符串。
- 增删改查当前沙盒中保存的键值对,方便调试。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,538评论 19 139
  • 本文的原始发布地址在我的个人博客 https://yohunl.com/iosri-zhi-huo-qu-he-s...
    yohunl阅读 5,903评论 2 42
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,604评论 30 472
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,939评论 25 709
  • 电影《购物狂》中,主角们看到各种东西就想买,根本控制不住购买的欲望,更有甚者为了买东西使自己的银行卡处于负数。 面...
    爱冒险的兔子酱阅读 209评论 3 2

友情链接更多精彩内容