今天我们借用CocoaLumberjack 来自定义自己的日志系统, 最终实现的效果为: #1. Log信息分类 #2. 时间 #3. 产生log的类 #4. 产生log所在方法名 #5. 好了, 下面来说说怎么实现的 首先我们先看下CocoaLumberjack的基本用法 Pod导入 pod 'CocoaLumberjack' 新建pch文件, 并添加: #import <CocoaLumberjack /CocoaLumberjack.h> static const DDLogLevel ddLogLevel = DDLogLevelDebug; ddLogLevel可依照需要设置为: DDLogLevelError } - (void)willRemoveFromLogger:(id <DDLogger>)logger { loggerCount--; } @end 然后按照以下方法配置CocoaLumberjack //配置CocoaLumberjack [DDLog addLogger:[DDASLLogger sharedInstance]]; //add log to Apple System Logs
比如Android使用mars-xlog、iOS使用CocoaLumberjack Android的实现没什么变化,依赖mars-xlog即可 implementation("com.tencent.mars frameworkName = "alog" pod("CocoaLumberjack") } 通过cinterop一些gradle Task会自动生成头文件给iosMain使用,比如生成alog-cinterop-CocoaLumberjack.klib 包含1_CocoaLumberjack.knm。 import cocoapods.CocoaLumberjack.* internal actual class ALogImpl actual constructor(): IALog { private fun d(tag: String, message: String) = ALog.d(tag, message) 到此,alog就完成了依赖现有的Android/iOS SDK(mars-xlog、CocoaLumberjack
OSLogTime:%f 0.9496610164642334 NSLogTime:%f 1.2216260433197021 OSLogTime:%f 0.9060399532318115 四、第三方log工具:CocoaLumberjack CocoaLumberjack是适用于Mac和iOS的快速,简单,功能强大且灵活的日志记录框架。 关于CocoaLumberjack,github参考https://github.com/CocoaLumberjack/CocoaLumberjack 1.Logger CocoaLumberjack CocoaLumberjack本身提供了这些属性让我们自定义 DDFileLogger *fileLogger = [[DDFileLogger alloc] init]; //重用log page=2 CocoaLumberjack:https://github.com/CocoaLumberjack/CocoaLumberjack
CleanroomLogger - 相当于CocoaLumberjack或Log4j的Swift版本,功能上甚至更强大。另外,源代码中已经内含了完整的API文档,使用非常方便。 MSLeakHunter - 自动检测UIViewController和UIView对象的内存泄露.MLeaksFinder的使用参照 CocoaLumberjack - 是一个快速,简单,但很强大的日志框架 CocoaLumberjack - 是一个快速,简单,但很强大的日志框架。 ipapy - iOS项目自动打包脚本,并且上传到fir.im,然后发送邮件给测试人员。
AFNetworking:网络请求 SDWebImage:网络图片下载、缓存 MJExtension:JSON - Model互转框架,高效低耦合 MJRefresh:下拉刷新,上拉加载更多,继承简单 CocoaLumberjack
宏定义、工具帮助类等; 1 集成百度地图(3.0.0版),目前有百度定位功能(ThirdMacros.h修改相应的key值) 2 集成友盟统计(ThirdMacros.h修改相应的key值) 3 集成CocoaLumberjack 并在登录页实现的(QQ,微信,新浪)三种的第三方登录功能(ThirdMacros.h修改相应的key值) 7 集成友盟第三方分享(QQ空间分享,微信朋友圈,新浪微博分享,QQ微博分享,微信好友) 8 增加关于CocoaLumberjack
CocoaLumberjack 如果CocoaLumberjack可用, MagicalRecord会自动把日志交由 CocoaLumberjack.所有你需要做的就是保证CocoaLumberjack 在 MagicalRecord之前导入,像这样: // Objective-C #import <CocoaLumberjack/CocoaLumberjack.h> #import <MagicalRecord
AFNetworking:网络请求 SDWebImage:网络图片下载、缓存 MJExtension:JSON - Model互转框架,高效低耦合 MJRefresh:下拉刷新,上拉加载更多,继承简单 CocoaLumberjack
AFNetworking:网络请求 SDWebImage:网络图片下载、缓存 MJExtension:JSON - Model互转框架,高效低耦合 MJRefresh:下拉刷新,上拉加载更多,继承简单 CocoaLumberjack
有对应的实现 相应的类库可以在github下载 具体的添加步骤为 添加以下的文件夹到工程中 Authentication Categories Core Utilities 添加Vendor下面的CocoaLumberjack
AFNetworking:网络请求 SDWebImage:网络图片下载、缓存 MJExtension:JSON - Model互转框架,高效低耦合 MJRefresh:下拉刷新,上拉加载更多,继承简单 CocoaLumberjack
AFNetworking:网络请求 SDWebImage:网络图片下载、缓存 MJExtension:JSON - Model互转框架,高效低耦合 MJRefresh:下拉刷新,上拉加载更多,继承简单 CocoaLumberjack
会比入门基础知识点更加深入; 四:模块知识点 1:集成百度地图(3.0.0版),目前有百度定位功能(ThirdMacros.h修改相应的key值) 2:集成友盟统计(ThirdMacros.h修改相应的key值) 3:集成CocoaLumberjack 并在登录页实现的(QQ,微信,新浪)三种的第三方登录功能(ThirdMacros.h修改相应的key值) 7:集成友盟第三方分享(QQ空间分享,微信朋友圈,新浪微博分享,QQ微博分享,微信好友) 8:增加关于CocoaLumberjack
platform :ios, '6.0' pod 'MyPodDemo', :git => 'https://github.com/goingta/MyPodDemo.git' //私有库 pod 'CocoaLumberjack 例如,两个不同 的 pods 依赖于 CocoaLumberjack 的两个版本,假设一个依赖于2.3.1,另一个依赖于 2.3.3,此时冲突解决系统可以使用最新的版本 2.3.3,因为这个可以向后 与 如果一个库依赖于 CocoaLumberjack 的 1.2.5,另外一个库则依赖于 2.3.1,那么只有最终用户通过明确指定使用某个版本来解决冲突。
4.2.4' pod 'FDFullscreenPopGesture', '~>1.1' pod 'CYLTabBarController', '~> 1.6.0' #修改过源代码 请勿更新 pod 'CocoaLumberjack
pod 'Module_OPF' , '~> 0.0.2' # 项目抽取的网络框架 pod 'Module_OPH' , '~> 0.0.2' #日志组件 pod 'CocoaLumberjack
4.2.4' pod 'FDFullscreenPopGesture', '~>1.1' pod 'CYLTabBarController', '~> 1.6.0' #修改过源代码 请勿更新 pod 'CocoaLumberjack
避免不必要的问题;(iOS独有) 【清除本地数据】 一键删除沙盒中所有数据; 【NSLog】 把所有 NSLog 信息打印到UI界面,避免没有开发证书无法调试的尴尬; 【Lumberjack】 每一条 CocoaLumberjack