CocoaLumberjack的ios应用开发使用指南_第1页
CocoaLumberjack的ios应用开发使用指南_第2页
CocoaLumberjack的ios应用开发使用指南_第3页
CocoaLumberjack的ios应用开发使用指南_第4页
CocoaLumberjack的ios应用开发使用指南_第5页
已阅读5页,还剩4页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CocoaLumberjack的ios应⽤开发使⽤指南GCDAsyncSocket等第三⽅开源控件都是采⽤的CocoaLumberjack⽇志打印功能。CocoaLumberjack⽀持ios⽇志⽂件异步记录,⽇志⽂件覆盖保存,5级别⽇志记录,xcode的彩⾊⽇志,作者经常维护更新,⼤部分的⽇志都基于该架构,但存在使⽤极为困难的问题。现总结⼀下使⽤⼼得,让你从零做起也能使⽤CocoaLumberjack⽇志架构的全部功能。测试环境:xcode6.2CocoaLumberjack该类型⽇志系统的原创者,并且不断及时更新,其它的库如Lumberjack都是基于它改编⽽成,更新困难或根本不更新。CocoaLumberjack的优点是⽀持mac⼯程和iOS功能,提供彩⾊⽇志,但是需要⽤podinstall的⽅式导⼊类库,⽀持使⽤pod命令⼀键⽹络下载更新最新库的功能,有后台线程异步存储⽇志,但存在不懂得pod导⼊库的⼈使⽤极困难和pod倒⼊得库会修改⼯程的结构,CocoaLumberjack是稳定的第三⽅库,基本功能⼀般不会有太⼤的变更。本⽂介绍的是CocoaLumberjack的常规导⼊⽅法,若需要更新⾃⼰下载下,⾃⼿⼯覆盖下⽂件也很简单。建议使⽤CocoaLumberjack,不断完善的库才能更健壮。DDASLLogger:⽀持将调试语句写⼊到苹果的⽇志中。⼀般真对Mac开发,可选。就是发往mac控制台的系统⽇志。DDTTYLogger:⽀持将调试语句写⼊xCode控制台。我们即使要⽤它。可选。可以⽀持彩⾊⽇志,使⽤了它便于问题定位,很好⽤DDFileLogger:⽀持将调试语句写⼊到⽂件系统。可选。保存⽇志⽂件的个数可以指定,超过制定个数就⼲掉最早的⽇志(覆盖写⽇志),⽇志⽂件⽂件最⼤尺⼨可以制定,最⼤切换⽂件时间可以指定,当⽂件超过最⼤⽂件尺⼨或最⼤⽂件切换时间到并且有新的⽇志⽂件时就重新⽴⼀个⽇志⽂件。⽇志⽂件放在类事下⾯的⽂件夹下,该⽂件在iPhone中⼀般不能直接看到。可以通过修改⽂件路径和⼯程参数可以导出⽇志⽂件。/var/mobile/Containers/Data/Application/CECD8580-EEE6-4582-8CC0-79EEEB06146A/Documents/LogsCocoaLumberjack有很多使⽤的陷阱,不然不是使⽤不起来就是部分功能⽆效:第⼀:下载并安装XcodeColors。第⼆:引⼊第三⽅库CocoaLumberjack。第三:把下载库⽂件夹及⼦⽂件夹的⽂件加⼊⼯程(CocoaLumberjack-master/Classes),删除CocoaLumberjack.swift(不删除该⽂件编译不通过)。第四:编辑⼯程的scheme,把run中的arguments中增加XcodeColors并设置为YES第五:在预编头⽂件-Prefix.pch头⽂件中增加包含#import"CocoaLumberjack.h"和定义⽇志级别。内容:#ifdef__OBJC__#import"CocoaLumberjack.h"#endif#ifdefDEBUGstaticconstDDLogLevelddLogLevel=DDLogLevelVerbose;#elsestaticconstDDLogLevelddLogLevel=DDLogLevelOff;#endif

第六:在AppDelegate.m或AppDelegate.mm⽂件中包含Common.h,在-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions函数中增加[DDLogaddLogger:[DDTTYLoggersharedInstance]];[[DDTTYLoggersharedInstance]setColorsEnabled:YES];DDFileLogger*fileLogger=[[DDFileLoggeralloc]init];fileLogger.rollingFrequency=60*60*24;//24hourrollingfileLogger.logFileManager.maximumNumberOfLogFiles=7;[DDLogaddLogger:fileLogger];第七:在需要打印⽇志的地⽅增加和NSLOG同样参数的⽇志:DDLogError(@"Paperjam%@",@"dsfsd");DDLogWarn(@"Tonerislow");DDLogInfo(@"Warmingupprinter(pre-customization)");DDLogVerbose(@"Intializingprotcolx26(pre-customization)");第⼋:定制不同类型的⽇志显⽰不同的颜⾊:DDLogError(@"Paperjam");DDLogWarn(@"Tonerislow");#ifTARGET_OS_IPHONEUIColor*pink=[UIColorcolorWithRed:(255/255.0)green:(58/255.0)blue:(159/255.0)alpha:1.0];#elseNSColor*pink=[NSColorcolorWithCalibratedRed:(255/255.0)green:(58/255.0)blue:(159/255.0)alpha:1.0];#endif[[DDTTYLoggersharedInstance]setForegroundColor:pinkbackgroundColor:nilforFlag:DDLogFlagInfo];DDLogInfo(@"Warmingupprinter(post-customization)");DDLogDebug(@"DDLogDebug");#ifTARGET_OS_IPHONEUIColor*gray=[UIColorgrayColor];#elseNSColor*gray=[NSColorgrayColor];#endif[[DDTTYLoggersharedInstance]setForegroundColor:graybackgroundColor:nilforFlag:DDLogFlagVerbose];DDLogVerbose(@"Intializingprotcolx26(post-customization)");CocoaLumberjack本地化增强功能:

第九:对CocoaLumberjack的功能进⾏扩展增加通过ituns⼯具对制定应⽤的⽇志⽂件的导出。把DDFileLogger.m下的-(NSString*)defaultLogsDirectory函数的NSArray*paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);修改为:NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);来让⽇志写在app的可以访问的⽂档⽬录下。在targets的buildsettings中的Info.listFile指向的Info.plist⽂件中增加⼀列键值ApplicationsupportsiTunesfilesharing类型是Boolean值YES.(注意发布正式版本时要把该属性设置为NO。当它的属性变更并且ituns在使⽤时,要打开关闭ituns后再打开再能保证ituns访问⽂件的权限和⼿机应⽤的权限⼀致。)这样就可以在⼿机连接到电脑上,点击iPhone,点应⽤程序,在⽂件共享中点击对应的app,点Logs⽂件夹,点存储到...指定⽂件夹就可以导出⽇志⽂件了,当⽂件刷新时导致看不到时,通过点击其它应⽤再点该应⽤可以重新刷新出Logs⽂件夹第⼗:对CocoaLumberjack缺少打印⽇志时的⽂件名和⾏数的功能进⾏扩展。通过修改你的全局头⽂件(如:Macro.h中的宏定义来实现,不过那样你就要使⽤新的打印⽇志函数。代码如下:#ifndefCLDDLogError#defineCLDDLogError(format,...)\{\DDLogError((@"%@.m:%dErr:"format),NSStringFromClass([selfclass]),__LINE__,##__VA_ARGS__);\}#endif#ifndefCLDDLogWarn#defineCLDDLogWarn(format,...)\{\DDLogWarn((@"%@.m:%dWarn:"format),NSStringFromClass([selfclass]),__LINE__,##__VA_ARGS__);\}#endif#ifndefCLDDLogInfo#defineCLDDLogInfo(format,...)\{\DDLogInfo((@"%@.m:%dInfo:"format),NSStringFromClass([selfclass]),__LINE__,##__VA_ARGS__);\}#endif

#ifndefCLDDLogDebug#defineCLDDLogDebug(format,...)\{\DDLogDebug((@"%@.m:%dDebug:"format),NSStringFromClass([selfclass]),__LINE__,##__VA_ARGS__);\}#endif#ifndefCLDDLogVerbose#defineCLDDLogVerbose(format,...)\{\DDLogVerbose((@"%@.m:%dVerbose:"format),NSStringFromClass([selfclass]),__LINE__,##__VA_ARGS__);\}#endif参考内容:⼀、安装xCode扩展插件XcodeColors点击⼯程editscheme,给编译场景中的run->arguments增加环境变量增加XcodeColors变量,值设置为YES。我把FHL-Prefix.pch⾥的设置为只有调测场景才启动写⽇志了。所以你要把编译环境设置为debug模式,当然你想release场景也写⽇志⽂件,只需要修改这段代码就可以,⾄于你想什么级别可以⾃⼰指定有效的枚举值。原代码:#ifdefDEBUGstaticconstDDLogLevelddLogLevel=DDLogLevelVerbose;//#else//staticconstDDLogLevelddLogLevel=DDLogLevelOff;#endif

若只需要release版本写告警级别的⽇志,debug级别写所有级别的⽇志,只需要改为下⾯代码就可以:#ifdefDEBUGstaticconstDDLogLevelddLogLevel=DDLogLevelVerbose;#elsestaticconstDDLogLevelddLogLevel=DDLogLevelWarning;#endif枚举值typedefNS_ENUM(NSUInteger,DDLogLevel){DDLogLevelOff=0,DDLogLevelError=(DDLogFlagError),//0...00001DDLogLevelWarning=(DDLogLevelError|DDLogFlagWarning),//0...00011DDLogLevelInfoDDLogLevelDebugDDLogLevelVerboseDDLogLevelAll=(DDLogLevelWarning|DDLogFlagInfo),//0...00111=(DDLogLevelInfo=(DDLogLevelDebug=NSUIntegerMax|DDLogFlagDebug),//0...01111|DDLogFlagVerbose),//0...11111//1111....11111(DDLogLevelVerboseplusanyotherflags)};2.下载完成后,打开XcodeColors项⽬,编译即可。它会在你的电脑中安装插XcodeColors.xcplugin。具体路径在:~/Library/ApplicationSupport/Developer/Shared/Xcode/Plug-ins/XcodeColors.xcplugin(可以去瞅⼀眼)。可以把XcodeColors.xcplugin(2015-5-12⽇的最新版本)直接拷贝到~/Library/ApplicationSupport/Developer/Shared/Xcode/Plug-ins/⽬录下。很多⼈不知道怎么找到⽬录。可以点桌⾯,点上⾯的菜单中的前往-》我的电脑-》MacintoshHD,然后按照下图找到路径就可以了。3.退出xCode,重新打开。4.运⾏TestXcodeColors项⽬,尝试,是否安装成功。⼆、引⼊第三⽅

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论