ios 命令行打印日志分享

iOS应用开发中,打印调试日志是一种常见的调试技术,它可以帮助开发人员追踪代码执行过程中的问题 在开发和调试过程中,打印调试日志是一种非常有用的技术,它可以帮助我们追踪代码的执行过程,找出问题并进行调试。在上面的示例中,我们定义了一个名为DebugLog的宏,它使用NSLog函数来打印日志。CocoaLumberjack是一个功能强大的日志库,它提供了更高级的日志管理功能,比如日志级别控制、日志文件保存等。iOS应用开发中,打印调试日志是一种常见的调试技术,它可以帮助开发人员追踪代码执行过程中的问题。本文将介绍几种在iOS应用中打印调试日志的方法,并提供相应的源代码示例。 阅读详情

一个app 在未正式发布之前 会有很多问题
如果是崩溃问题,则有线上的bugly来查看崩了日志
只要集成了bugly 就可以查看日志了

但这样存在弊端,一是网络不好的时候 日志没有记录到
二是很多时候日志只有崩溃的这一个时刻,没有上下文
环境,如果不是一般性错误,很难知道其具体原因
而我们在开发的过程中,能够时时刻刻看到打印的消息
同时还支持断点的调试功能,因此排错非常快

我希望将类似的东西增加到项目中,最开始是想按照悬浮窗
的形式出现,点击就可以看到最新的日志,webview 的vsconcle
就是这种思路的

我在网上找了一个封装好的类似控件尝试了一下,demo跑起来是
可以的,但加入到项目中就发现问题特别严重,因为日志的数据量
是相当庞大的,ui刷新的显示在小屏幕上速度飞快,会造成机器的卡顿
用户体验相当差。

那么有没有别的解决办法呢?

我们知道sdk 开发,sdk封装好了给用户,用户如果对sdk的某项功能
提出了质疑,那么sdk厂商是相信自己的代码还是用户呢,其实sdk厂商
都提供了日志写入的服务,将每一步操作都一丝不苟的写入用户提供的路径
然后让用户从沙盒或者其他地方导出给sdk厂商,以此来判断用户所处的情况,再判断sdk是否出了问题。

那么ios 也是能够将日志写入沙盒的,就是捕获终端的所有输入,再加上
崩溃日志,把这些重定向到你的沙盒就完了。

stdout

可以关注一下这个两个系统打印,重定向到你的沙盒。

写入沙盒后难道每次都要把手机给开发者,让开发者把日志从沙盒里面拷贝
出来么?

其实不用的,只需要给你的日志增加一个分享的功能即可,苹果官方就有

UIDocumentInteractionController

这个就是专门用来做分享的类,你只要找到你对应的日志,分享给你的电脑
,你自己就可以看了,分享给开发者,就免去了开发者从你手机中拷贝你日志的时间浪费。

除此之外,为了防止在项目中用户体验不好,可以把日志分享加到摇一摇中,避免阻挡用户视觉,而日志总是在不断记录的,所以每次日志加个时间戳,就可以看到是什么时间点记录的日志,防止日志过大,项目中可以控制开始日志记录和结束日志记录来防止不必要的日志记录,造成app缓存越来越大的问题,当然可以做7天日志删除这类功能,不过都是锦上添花了。

这个是我整个日志分享从思考到实现的整个过程。

最后留下demo传送门

ios-打印log和崩溃日志。.zip 1.打印log可以打印有颜色的log,前提是安装第三方插件。压缩包附带颜色的第三方插件。如果想打印颜色,必须先安装。类似第三方注释,直接运行就好。然后退出xcode,有LoadBundle提示证明你安装成功。 2.打印崩溃日志的log输出直接保存到沙盒文件。崩溃日志崩溃多少次就分多少个文档存储。但是打印log每天都只保存到一个文件。默认是5天。 立即下载

相关推荐

Nettrace 源码分析

文章介绍:本文将围绕腾讯开源项目nettrace工具中数据采集,数据处理,数据分析三个模块深入源码分析其实现细节

abobob的博客 989

iOS 收集打印日志

可以将要在Xcode 控制台打印的日志写在沙盒,最后导出分享,进行问题分析。正式版本不建议使用,避免增加用户内存。配合解决顽固 Bug 可以通过该方法收集打印日志。

小桥流水哗啦啦,iOS Coder 哒哒哒 1074

怎么用phpstudy制作网站

随着实践的深入,你会逐渐掌握更多高级技巧和技术,让你的网站变得更加完善和吸引人。现在你已经成功设置了你的本地Web服务器环境,接下来我们将指导你如何利用这个环境来创建一个简单的PHP网页项目。为了使网站更加动态且功能丰富,我们需要学会如何让PHP脚本与MySQL数据库交互。为了让网站看起来更专业美观,可以考虑引入CSS样式表来定制网页布局及视觉效果。当你对本地开发的网站感到满意后,下一步就是将其发布到互联网上供他人访问了。让我们进一步扩展我们的网站,加入一个简单的用户注册与登录系统。

2401_87999399的博客 6574

iOS手机端日志打印显示工具

iOS手机端日志打印显示工具,在不连接xcode时,你仍然可以清晰的看到app内系统日志以及NSLog打印的日志,开发调试必不可少,大大提高调试效率,不用时时都链接xcode。快速方便集成,两行代码即可搞定。

Smile定格的博客 2278

Kaamel白皮书:IoT设备安全隐私评估实践

明确评估的目的和预期结果。

kaamelai的博客 1317

Halcon实战:基于图像清晰度自动筛选最佳对焦图片

本文详细介绍了如何使用Halcon实现基于图像清晰度的自动筛选最佳对焦图片技术。通过分析灰度值统计和标准差等核心指标,结合实战代码示例,帮助开发者高效处理工业检测中的对焦问题,提升自动化检测的准确性和效率。

weixin_27015733的博客 438

iOS OSLog日志打印

从print迁移到OSLog是 iOS 开发者迈向专业化的重要一步。它不仅让你的代码符合 Apple 的标准生态,更在排查那些离奇的“线上崩溃”和“偶发 Bug”时,为你提供了最坚实的证据。

小桥流水哗啦啦,iOS Coder 哒哒哒 1169

手把手教你用Qt和QScada框架,从零搭建一个简易的工业组态监控界面

本文详细介绍了如何使用Qt和QScada框架从零搭建工业组态监控界面,涵盖环境配置、界面设计、动态数据绑定及高级功能实现。通过实战案例演示,帮助开发者快速掌握SCADA系统开发技巧,提升工业自动化项目的开发效率。

weixin_32932149的博客 340

iOS日志打印存贮到txt文件及沙盒文件操作

在我们开发中过程中有时候会有这样的场景,需要脱离连线调试代码,但是又看不见控制台的Log,所以将Log存到文本中,调试过程全部记录下来,随时可以看。 存贮: class func logWithTag(_ tag:String){ if logMode { print(tag) //将数据写入log中, ...

qq_32117417的博客 1194

Openclaw错误分析与解决方案之:Agent couldn’t generate a response.

Openclaw错误分析与解决方案之:Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 1315

用miniconda建立PyTorch、Keras、TensorFlow三个环境

如果还没有安装Miniconda,请从[Miniconda官网](https://docs.conda.io/en/latest/miniconda.html)下载合适的版本并进行安装。如果遇到问题,可以通过编辑`~/.condarc`文件来临时禁用某个源,或者通过`conda config --remove channels`命令来移除配置的镜像源。要切换到不同的环境,先使用`conda deactivate`命令退出当前环境,再用`conda activate 环境名称`命令激活另一个环境。

数字人生 2464

iOS开发调试技巧之NSLog日志导出

开发过程中,调试必不可少,而日志则是一个重要的调试信息。当直接运行代码进行调试时,可以在Xcode控制台实时看到日志信息。然而当脱离了Xcode控制台,比如,安装到手机上时,这时我们该如何去查看日志呢? 其实可以把日志写入到一个文件中,然后通过文件查看日志信息。 把日志写入文件,主要是利用C语言的freopen()函数进行重定向,将写往stdout、stderr的内容重定向到我们指定的文件中去。

iOS15011015的博客 3915

Linux Kernel入门到精通系列讲解 - 总目录

在学习Linux Kernel之前,需要先准备开发环境,方便后续进行开发。可以根据自身情况,选择性阅读该章节。学习该章节之前,你应该了解一下网络概念,明白为什么要讲这些,才能更有方向的去理解学习。Linux ARM平台开发系列讲解(设备树篇) 4.1.1 设备树的原理详解。本项目完全开源,仅供学习使用,如需其他用途,请与本人联系。),本章节你可以学习到。摄像头V4L2子系统、Linux kernel常用的子系统等,ARM架构、RISCV架构、Uboot等。

DSMGUOGUO的博客 1万+

ios微信分享失效_app 微信分享功能 在ios中失效

app开发了 新闻分享功能。在安卓上测试通过了,然后在ios中一直分享失败。以下是部分代码代码在ios真机运行时已经 打印出了 已授权,说明 我填的配置应该是没有问题。不知道问题出在哪里!/**分享操作@param {JSON} sb 分享操作对象s.s为分享通道对象(plus.share.ShareService)@param {Boolean} bh 是否分享链接*/function sh...

weixin_34737524的博客 1120

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

linux debug日志打印,Flutter - 打印好用的Debug日志

一、思考做 iOS 开发时这个功能很常用, 在 OC 和 Swift 中都可以很轻松实现,因为系统本来就提供了用于日志输出的预处理宏,只要我们拿来拼接就可以了,但是在 Dart 中并不提供这些,那有什么办法实现它呢?我们回想在开发过程中,是不是发现只要一不小心抛异常,就可以看到类似如下的打印内容,而且还能清楚的知道异常是在哪个文件和哪一行的代码造成的。所以如果我们可以在调用函数时拿到当前调用堆栈,...

weixin_42504214的博客 902

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

获取Android和iOS崩溃日志的方法

App测试过程中难免会遇到崩溃,本文介绍一些常用的获取崩溃的方法

adorable_的博客 3275

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

iOS高效调试

写代码难免出现bug。 储备些调试技能绝对能够提高你的工作效率,让bug无所遁形。下面就和大家分享一些我在工作中常用的iOS调试小技能。 1. 打印 最简单,基础的调试方法就是打印日志了。贴出两段封装好的日志打印代码: //swift版 func DLog(message: T, file: String = #file, method: String = #function, li

LG_CodeMachine的博客 1083

Flutter日志插件log4f:基于Android Log和iOS NSLog,封装Logan,App也可查看日志

1. 它是什么 log4f是一个Flutter插件,调用了原生的日志方法。Flutter原生的日志不太友好,而且DEBUG Console输出没有颜色;现成的一些插件又多是做一些格式化的封装,这些“格式化”在我看来很多都是多余的。所以我自己写了一个非常简单的日志插件,在Android平台上调用了android.util.Log的相关方法,在iOS上调用了NSLog方法,使用平台的Native代码打印日志。 2. 怎么用 基本使用 Log4f.log("v", "tag", "msgmsgmsgmsgmsgm

2863

iOS Crash异常日志收集

异常日志的产生与存储 任何一款应用在使用过程中出现各种异常问题在所难免,如何能快速还原场景定位异常,对于能否及时修复问题非常重要.在apple的文档中我们发现了这样一张图,完整地描述了应用的整个流程: 编译器将源代码编译成机器代码的过程中,会生成调试符号,这些调试符号将生成的二机制文件中的每一条机器指令映射回源代码行.根据调试信息格式的构建设置(setting builds--Debug...

王二东的博客 921

iOS开发- 日志打印(常见)

转载:http://www.41443.com/HTML/iphone/20150109/275729.htmlQ:如何打印当前的函数和行号? A:我们可以在打印时使用一些预编译宏作为打印参数,来打印当前的函数和行号。如: NSLog(@”%s:%d obj=%@”, func, LINE, obj);NSLog(@”%s:%d obj=%@”, func, LINE, self); //输出样

wangzhen3416的博客 502

iOS-定位(location manager )出现log日志解决方法

自iOS 10.0以后,项目中老是出现有关定位管理者的日志信息,说定位管理者最好放在主线程;在实际开发中,当在子线程中创建定位管理者,有可能收不到回调信息提示信息如下: A location manager (0x7fbafac12560) was created on a dispatch queue executing on a thread other than the main threa

Mazy's Blog 4043

ios 打印c语言数组,iOS - NSLog打印(精准打印)

常用的NSLog的语句在iOS开发过程中,调试是很重要的过程,而除了各种断点调试(普通断点、条件断点、全局断点)之外,似乎NSLog是我们调试最常用的方法,当然,也是最简单朴素的寻debug方法。NSLog(@"打印字符串:%@",name);NSLog(@"打印整形:%i",number);//或者 %li ; %ld ; %dNSLog(@"打印字符:%c",c);NSLog(@"打印单浮点数...

weixin_42500866的博客 789

如何查看本地的崩溃log_iOS 查看及导出项目运行日志

前文:最近笔者在家远程办公的时候,在测试项目时,遇到了测试同学测试出了问题,但是笔者这边不能复现的情况。所以整理了一下 iOS 查看及导出项目运行日志。如大家有需要,可以继续查看详情。笔者将分享iOS 查看及导出项目运行日志的内容,全文分为如下7个部分。控制台查看日志;重定向 NSLog 日志;通过 Xcode下载 Container 查看日志;通过 PAirSandbox:AirSan...

weixin_39588209的博客 1571

关于程序中日志打印和异常抛出

今天在调试程序的时候出现错误,总是在完成握手后,解析json数据的时候出错。然后花了大量时间查看是不是json解析的代码错了。最后意外发现是因为和服务器通信时间过长,没有发送数据过去,网络自动断了。完全是花了时间在错误的方向上。要是,在刚开始出现错误的时候,程序能告诉我错误的原因,就不会走很多冤枉路了。 其实在程序中可以通过记录错误日志和抛出错误异常的方式来告诉错误的原因。而且,在ios客户端中

磊磊的学习笔记 1791

iOS学习笔记40-日志重定向

一、日志重定向我们在iOS开发过程中,我们时常会使用NSLog打印到控制台的日志信息进行代码调试,但这样调试的前提是连接上Xcode。 如果进行真机调试但同时又不能连接Xcode的时候,就不能直接在xcode的控制台查看输出日志了,但是程序还是会执行那些Log的,如果要查看这些日志,我们就需要把输出日志信息保存到文件中,然后进行查看。标准NSLog的打印默认是往标准错误(stderr)进行打印的,

执着丶执念的博客 524
上一篇: ffmpeg ts 网址下载时间过久的问题
下一篇: ios 实时监控每秒请求的网络数据
csdn_Damon
博客等级 码龄10年 37粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值