标签:... 存储 重视 Crash iOS 上报 日志 上传
iOS中常用日志和上报系统浅析
日志和上报
上报
日志
统计分析问题(时长,转化率)
定位问题
记录用户的行为和操作
上传用户的关键操作
记录不符合预期的执行
上传关键路径
上传失败
上传Crash堆栈数据
Crash的收集
收集数据
Debug过程中的展示
上传特定用户日志
收集与展示界面
网络体系
存储体系
framework集成
日志系统
CocoaLumberiack
NSLog
提供日志分级功能
记录错误信息
支持多种日志存储和展示
低效的传输ASL(AppleSystemLog)
支持自定义Logger
有大量的磁盘/O操作
高效易于扩展
没有日志分级
兼容ASL等系统级日志功能
代码中不易取到全部的日志
类CocoaLumberjack日志框架架构浅析
hellogit:master)
podfile
cat
hello'do
target
AFNetworking
pod
sDWedImage
pod
podCocoaLumberjack
end
helLogit:masterxpodupdate
Updateallipods
Updatinglocalspecsrepositories
CocoaPods1.10.1isavailable
cocoapods
To
updateuse:
sudogeminstall
Formoreinformation,seehttps://blog.cocoapodsgandthe
CHANGELOGf
versiondthttps://gthub.om/ocood/ocoodreleases/ta/1
Analyzingdependencies
DownLoadingdependencies
GeneratingPodsproject
gclientproject
Integratingcl
mthePodfileand
Pod
from
installationcomplete!Therearedependencie
podsinstalled
!]
ontarget
Automaticallyassiginaomho
becausenoplatforml
rmwas
specified,PLeasespecifyaplatformforthis
https://guides.cocoapods.org/tax/pofiletm
yourPodfile.See
helLoqit:master
helloworld!
日志分级
DDLogMessage
区分不同等级的日志
做特殊的业务处理
格式化
DDLogFormatter
加入时间/类名/行数...
xcode控制台输出
Console.app查看
支持分享/上传
使用ASL提供的函数
调用系统标准输入/输出
存储到App沙盒
DDFileLogger
DDTTYLogger
DDASLLogger
日志系统
存储文件的注意事项
日志分级和格式化
非主线程&线程安全
控制台和ConsoleApp的展示
文件存储的位置/命名
系统级别的API
过期文件的处理
过大文件的处理/文件大小国值
本地沙盒的日志存储
系统是否清理
对于日志业务的理解
文件被意外修改的容错
集成和设计自己的日志系统
KillApp的保存
通用文件的存储和处理
applicationWillTerminateflush及mmap
Crash的类型介绍和常用收集方案
Crash
ios中的Crash种类
0libobjc.A.dylib0x000000019468bbdcobjcmged(jt)
1CoreTelephony0x0000001887490catioutio
CTServerState:sendNotihcationyinco
系统级:Signal信号
2lbdispatch.dylilbox0000000194cc9994diathcalck
Mach内核异常时发送Unix信号
3libdispatch.dylb0x0000009i
libdispatch.dylibox000000019d4iq
eue-drain
SIGKILL/SIGSEGV...
einvok
5libdispatch.dylibx00009cccadiq
应用级:NSException
OCoreFoundation0x0000001a9927cexctionoo
应用或自定义异常
1libobjc.A.dylibox000000038bicexctionthw
2CoreFoundation0x00000001a9f05ab8-odeint
NSlnvalidArgumentException...
3CoreFoundation0x00000001a9feeac4
forwarding_
CoreFoundation0x00000001a9ff075c.CFfowarding
其它
5UIKitcore0x00000001d6bafc54UiLablseText]+7
Crash获取
Crash上报的获取
Mach异常
C/C++
NSException
iosCrashRepoter
收集Crash信息/堆栈信息/设备信息...
UncaughtExceptionHandler
处理堆栈及Crash信息
signal信号的捕获
内存检测/卡顿检测/watchdog
存储/上传
开源项目及SDK
上传到自定义服务器-KSCrash/PLCrashReporter
全面的质量跟踪服务-友盟/Bugly..
常用上报技术方案对比和分析
上报
无埋点/上报
埋点/上报
具体业务代码处,手动添加埋点代码
基于基于Runtime/消息转发
友盟统计/百度统计
使用MethodSwizzling/Aspect/开源框架
无法更改/代码侵入
hook通用方法(页面时常,接口调用,点击)
预埋使用轮询接口上传日志
动态下发/动态增加删除上报
Crash上报
唯一标识的问题
标签:...,存储,重视,Crash,iOS,上报,日志,上传 来源: https://www.cnblogs.com/mysweetAngleBaby/p/16463643.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。