html5中文学习网

您的位置: 首页 > ios » 正文

iOS开发:日志框架CocoaLumberjack_IOS开发

[ ] 已经帮助:人解决问题

   CocoaLumberjack是Mac和iOS上一个集快捷、简单、强大和灵活于一身的日志框架。CocoaLumberjack类似于流行 的日志框架(如log4j),但它是专为Objective-C设计的,利用了多线程、GCD(如果可用)、无锁原子操作Objective-C运行时的 动态特性。b7tHTML5中文学习网 - HTML5先行者学习网

  快速b7tHTML5中文学习网 - HTML5先行者学习网

  在大多数用例中,Lumberjack比NSLog快了一个数量级。b7tHTML5中文学习网 - HTML5先行者学习网

  简单b7tHTML5中文学习网 - HTML5先行者学习网

  当应用程序启动时,只需一行加单的代码就可配置Lumberjack。然后用DDLog语句简单地取代NSLog语句。 并且DDLog宏与NSLog的有完全相同的格式和语法,所以超级简单。b7tHTML5中文学习网 - HTML5先行者学习网

  强大b7tHTML5中文学习网 - HTML5先行者学习网

  一个日志语句可以被发送到多个logger,意味着你可以同时记录文件和控制台。此外,还可以创建自己的logger,将日志语句发送到网络、数据库或者分布式文件系统中。没有任何限制。b7tHTML5中文学习网 - HTML5先行者学习网

  灵活性b7tHTML5中文学习网 - HTML5先行者学习网

  配置你自己想要的日志框架。修改每个文件的日志级别(尤其是测试时)。修改每个logger的日志级 别(详细的控制台,但是简洁的日志文件)。修改每个Xcode配置的日志级别。为你的应用程序定制日志级别的数量。添加自己的精细的日志。在运行时动态修 改日志级别。 选择如何以及何时回滚你的日志文件。将日志文件上传至中心服务器。压缩存档日志文件来节省硬盘空间。b7tHTML5中文学习网 - HTML5先行者学习网

  当你遇到一下情况是,你可以选择Lumberjack框架:b7tHTML5中文学习网 - HTML5先行者学习网

  1.你想找到一种方式来跟踪在程序中不断出现的不可复制的bug;b7tHTML5中文学习网 - HTML5先行者学习网

  2.你对iPhone上的简短日志感到很失望;b7tHTML5中文学习网 - HTML5先行者学习网

  3.出于支持系统和稳定性的需要,你想将应用程序升级到下一级别;b7tHTML5中文学习网 - HTML5先行者学习网

  4.为你的应用程序(Mac或者iPhone)寻找企业级的日志解决方案。b7tHTML5中文学习网 - HTML5先行者学习网

  如何开始使用Lumberjack框架b7tHTML5中文学习网 - HTML5先行者学习网

  开始b7tHTML5中文学习网 - HTML5先行者学习网

  三步开始使用CocoaLumberjack框架:b7tHTML5中文学习网 - HTML5先行者学习网

  1.将Lumberjack文件添加到你的项目中;b7tHTML5中文学习网 - HTML5先行者学习网

  2.配置框架;b7tHTML5中文学习网 - HTML5先行者学习网

  3.将NSLog指令转换为使用Lumberjack宏指令;b7tHTML5中文学习网 - HTML5先行者学习网

  把Lumberjack框架添加到你的项目b7tHTML5中文学习网 - HTML5先行者学习网

  需要添加的主要文件有四个:b7tHTML5中文学习网 - HTML5先行者学习网

  1.@DDLog(整个框架的基础)b7tHTML5中文学习网 - HTML5先行者学习网

  2.@DDASLLogger(发送日志语句到苹果的日志系统,以便它们显示在Console.app上)b7tHTML5中文学习网 - HTML5先行者学习网

  3.@DDTTYLoyger(发送日志语句到Xcode控制台,如果可用)b7tHTML5中文学习网 - HTML5先行者学习网

  4.@DDFIleLoger(把日志语句发送至文件)b7tHTML5中文学习网 - HTML5先行者学习网

  DDLog是强制性的,其余的都是可选的,这取决于你打算如何使用这个框架。例如,如果你不打算纪录到一个文件,你可以跳过DDFileLogger,或者你想跳过ASL以便更快的文件记录,你可以跳过DDASLLoger。b7tHTML5中文学习网 - HTML5先行者学习网

  配置框架b7tHTML5中文学习网 - HTML5先行者学习网

  首先,你想要在你的应用程序中配置这个日志框架,通常在applicationDidFinishLaunching方法中配置。b7tHTML5中文学习网 - HTML5先行者学习网

  开始时,你需要下面两行代码:b7tHTML5中文学习网 - HTML5先行者学习网

  [DDLog addLogger:[DDASLLogger sharedInstance]];b7tHTML5中文学习网 - HTML5先行者学习网

  [DDLog addLogger:[DDTTYLogger sharedInstance]];b7tHTML5中文学习网 - HTML5先行者学习网

  这将在你的日志框架中添加两个“logger”。也就是说你的日志语句将被发送到Console.app和Xcode控制 台(就像标准的NSLog)b7tHTML5中文学习网 - HTML5先行者学习网

  这个框架的好处之一就是它的灵活性,如果你还想要你的日志语句写入到一个文件中,你可以添加和配置一个file logger:b7tHTML5中文学习网 - HTML5先行者学习网

  fileLogger = [[DDFileLogger alloc] init];b7tHTML5中文学习网 - HTML5先行者学习网

  fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rollingb7tHTML5中文学习网 - HTML5先行者学习网

  fileLogger.logFileManager.maximumNumberOfLogFiles = 7;b7tHTML5中文学习网 - HTML5先行者学习网

  [DDLog addLogger:fileLogger];b7tHTML5中文学习网 - HTML5先行者学习网

  上面的代码告诉应用程序要在系统上保持一周的日志文件。b7tHTML5中文学习网 - HTML5先行者学习网

  用DDLog替换NSLog语句b7tHTML5中文学习网 - HTML5先行者学习网

  DDLog的头文件定义了你用来替换NSLog语句的宏,本质上看起来向下边这样:b7tHTML5中文学习网 - HTML5先行者学习网

  // Convert from this:b7tHTML5中文学习网 - HTML5先行者学习网

  NSLog(@"Broken sprocket detected!");b7tHTML5中文学习网 - HTML5先行者学习网

  NSLog(@"User selected file:%@ withSize:%u", filePath, fileSize);b7tHTML5中文学习网 - HTML5先行者学习网

  // To this:b7tHTML5中文学习网 - HTML5先行者学习网

  DDLogError(@"Broken sprocket detected!");b7tHTML5中文学习网 - HTML5先行者学习网

  DDLogVerbose(@"User selected file:%@ withSize:%u", filePath, fileSize);b7tHTML5中文学习网 - HTML5先行者学习网

  我们看到DDLog宏和NSLog的语法完全相同。b7tHTML5中文学习网 - HTML5先行者学习网

  所以你所要做的就是决定每个NSlog语句属于哪种日志级别。DDLog默认有四种级别的日志,分别是:b7tHTML5中文学习网 - HTML5先行者学习网

  1.@DDlogErrorb7tHTML5中文学习网 - HTML5先行者学习网

  2.@DDlogWarnb7tHTML5中文学习网 - HTML5先行者学习网

  3.@DDlogInfob7tHTML5中文学习网 - HTML5先行者学习网

  4.@DDlogVerboseb7tHTML5中文学习网 - HTML5先行者学习网

  (注意:你也可以自定义级别以及级别名或者添加更精细的控制来代替系统四个简单的等级。)b7tHTML5中文学习网 - HTML5先行者学习网

  当然选择哪个NSLog语句取决于你的消息的严重程度。b7tHTML5中文学习网 - HTML5先行者学习网

  下面的这些不同的日志等级也许正有你所需要的:b7tHTML5中文学习网 - HTML5先行者学习网

  1.如果你将日志级别设置为 LOG_LEVEL_ERROR,那么你只会看到DDlogError语句。b7tHTML5中文学习网 - HTML5先行者学习网

  2.如果你将日志级别设置为LOG_LEVEL_WARN,那么你只会看到DDLogError和DDLogWarn语句。b7tHTML5中文学习网 - HTML5先行者学习网

  3.如果您将日志级别设置为 LOG_LEVEL_INFO,那么你会看到error、Warn和Info语句。b7tHTML5中文学习网 - HTML5先行者学习网

  4.如果您将日志级别设置为LOG_LEVEL_VERBOSE,那么你会看到所有DDLog语句。b7tHTML5中文学习网 - HTML5先行者学习网

  5.如果您将日志级别设置为 LOG_LEVEL_OFF,你将不会看到任何DDLog语句。b7tHTML5中文学习网 - HTML5先行者学习网

  那么我在哪里设置日志级别呢,在整个项目中我只能使用一个日志级别吗?b7tHTML5中文学习网 - HTML5先行者学习网

  当然不是,我们都知道正如调试或者添加新特性,如果你想详细纪录目前正在做的那部分,Lumberjack框 架提供了对每个文件的调试控制,你仅可以修改编辑中的文件的日志级别。b7tHTML5中文学习网 - HTML5先行者学习网

  (注释:当然还有许多其他高级选项,比如全球日志级别,Xcode的每个配置级别,每个logger级别等,我们将在另一篇文章中讲到)。b7tHTML5中文学习网 - HTML5先行者学习网

  以下是如何转换你的日志语句:b7tHTML5中文学习网 - HTML5先行者学习网

  // CONVERT FROM THISb7tHTML5中文学习网 - HTML5先行者学习网

  #import "Sprocket.h"b7tHTML5中文学习网 - HTML5先行者学习网

  @implementation Sprocketb7tHTML5中文学习网 - HTML5先行者学习网

  - (void)someMethodb7tHTML5中文学习网 - HTML5先行者学习网

  {b7tHTML5中文学习网 - HTML5先行者学习网

  NSLog(@"Meet George Jetson");b7tHTML5中文学习网 - HTML5先行者学习网

  }b7tHTML5中文学习网 - HTML5先行者学习网

  @endb7tHTML5中文学习网 - HTML5先行者学习网

  // TO THISb7tHTML5中文学习网 - HTML5先行者学习网

  #import "Sprocket.h"b7tHTML5中文学习网 - HTML5先行者学习网

  #import "DDLog.h"b7tHTML5中文学习网 - HTML5先行者学习网

  static const int ddLogLevel = LOG_LEVEL_VERBOSE;b7tHTML5中文学习网 - HTML5先行者学习网

  @implementation Sprocketb7tHTML5中文学习网 - HTML5先行者学习网

  - (void)someMethodb7tHTML5中文学习网 - HTML5先行者学习网

  {b7tHTML5中文学习网 - HTML5先行者学习网

  DDLogVerbose(@"Meet George Jetson");b7tHTML5中文学习网 - HTML5先行者学习网

  }b7tHTML5中文学习网 - HTML5先行者学习网

  @endb7tHTML5中文学习网 - HTML5先行者学习网

  注意日志级别声明为常量,这意味着这意味着日志级别阈值以上的DDLog语句都将编译到你的项目中。b7tHTML5中文学习网 - HTML5先行者学习网

  自动引用计数(ARC)b7tHTML5中文学习网 - HTML5先行者学习网

  最新版本的Lumberjack使用ARC。如果你的项目没有使用ARC,你可以在ARC页面学习如何在Xcode中像ARC一样正确地标记Lumberjack文件。b7tHTML5中文学习网 - HTML5先行者学习网

  更多关于Lumberjack:b7tHTML5中文学习网 - HTML5先行者学习网

  Automatically use different log levels for your debug vs release buildsb7tHTML5中文学习网 - HTML5先行者学习网

  Tailor the log levels to suite your needsb7tHTML5中文学习网 - HTML5先行者学习网

  Filter logs based on logger settingsb7tHTML5中文学习网 - HTML5先行者学习网

  Write your own custom formattersb7tHTML5中文学习网 - HTML5先行者学习网

  Write your own custom loggersb7tHTML5中文学习网 - HTML5先行者学习网

  And more...b7tHTML5中文学习网 - HTML5先行者学习网

  原文:CocoaLumberjackb7tHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助