编辑器加载中... 这是网上的英文资料的翻译版本,加上本人对这个框架的理解。说实话本人英语不是太好,如果你的英语足够好,你可以看英文原版。

地址是https://github.com/robbiehanson/CocoaLumberjack/wiki/GettingStarted

想要学习这个框架只需要三个步骤

1 把框架添加到你的应用程序

  2 配置框架

3 用Lumberjack输入代替你的NSLog输出

下面详细介绍每个步骤

1 把框架添加到你的应用程序

主要添加的文件有以下四个

@ DDLog(基础框架)

@ DDASLLogger(发送到苹果的日志系统,他们显示到控制台上),个人建议没有必要

@DDTTYLoyger (发送日志语句到控制台)

@DDFIleLoger (把输出信息写进文件中)

DDLog是强制性的,其余的都是可选的,这取决于你如何打算使用这个框架,如果你不打算纪录到一个文件,你可以跳过DDFileLogger,或者你想跳过ASl 在你的爱好快速纪录日志,你可以跳过DDASLLoger

2 配置框架

  第一件事情你要做的是在你applicationDidFinishLaunching方法中配置(通常是这么做)添加你所需要的文件

  下面几行代码是在开始的时候所需要的

  [DDLog addLogger:[DDASLLogger sharedInstance]];

[DDLog addLogger:[DDTTYLogger sharedInstance]];

  上面两行代码添加了一对logging框架,换句话说,你的日志语句已经能够发送到控制台,(就像一个正常的NSLog)

  这个框架的好处之一就是它的灵活性,如果你还想要你的日志语句写入到一个文件中,你可以添加和配置fileLogger

  fileLogger = [[DDFileLogger alloc] init];

fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling

  fileLogger.logFileManager.maximumNumberOfLogFiles = 7;  [DDLog addLogger:fileLogger];

上面的代码是告诉应用程序保持一周的日志文件系统

3 用Lumberjack输入代替你的NSLog输出

DDLog的头文件定义了宏,您将使用来取代你的NSLog语句。你可以参考下面的语句来代替你的NSlog
// Convert from this:
NSLog(@"Broken sprocket detected!");
NSLog(@"User selected file:%@ withSize:%u", filePath, fileSize);// To this:
DDLogError(@"Broken sprocket detected!");
DDLogVerbose(@"User selected file:%@ withSize:%u", filePath, fileSize);

我们看到DDLog和NSLog有这完全相同的语法,在使用的时候不会有人和的障碍。
DDLog默认有四种级别的日志,你所要做的就是决定使用那种日志级别来打印你的日志语句,它们分别是:

@DDlogError@DDlogWarn@DDlogInfo@DDlogVerbose

注释:你也可以自定义级别,你可以添加上更细微的控制代替系统四个简单的等级。当然你选择那个NSLog语句,这取决于你的消息的严重程度。

下面的这些不同的日志等级也许正有你所需要的

如果你设置的日志级别为 LOG_LEVEL_ERROR那么你只会看到DDlogError语句的输出。如果你将日志的级别设置为LOG_LEVEL_WARN那么你只会看到DDLogError和DDLogWarn语句。如果您将日志级别设置为 LOG_LEVEL_INFO,您将看到error、Warn和信息报表。如果您将日志级别设置为LOG_LEVEL_VERBOSE,您将看到所有DDLog语句。如果您将日志级别设置为 LOG_LEVEL_OFF,你不会看到任何DDLog语句。

那么我在哪里设置日志级别?我必须使用一个日志级别为我的整个项目吗?

当然不是,我们都知道它就像调试或者添加新的特性,你想详细纪录你目前正在调试的部分,这个框架提供了对每个文件的调试,所以你可以修改日志级别在你正在编辑的文件中。

注释:(当然还有许多其他高级选项,比如全球日志级别,每xcode配置水平,每记录器级别等。但是我们会去,在另一篇文章)。下面是详细的如何在你的代码中运用这个框架
// CONVERT FROM THIS#import "Sprocket.h"@implementation Sprocket- (void)someMethod
{NSLog(@"Meet George Jetson");
}@end// TO THIS#import "Sprocket.h"
#import "DDLog.h"static const int ddLogLevel = LOG_LEVEL_VERBOSE;@implementation Sprocket- (void)someMethod
{DDLogVerbose(@"Meet George Jetson");
}@end

注意日志级别声明为常数,这意味着DDLog以上声明的日志级别将被认为默认值,编译到你的项目中。(当你的编译器优化打开的时候,那就是你的发布版本)好,基本的DDlog框架就是这些,希望对你有所帮助,下一篇翻译更深的知识。

转载于:https://www.cnblogs.com/xiaoweige/archive/2012/10/08/lumberjack.html

学习lumberjack framework(中文版)相关推荐

  1. 学习lumberjack framework(深入版)

    也许看了上面的简单介绍,不知道如何去设置打印的级别,其实很简单,我的做法是构造一个头文件,因为我们会在很多的文件中用到这个级别设定,所以我们单独列出来,那个文件用只需要去引用头文件即可在头文件中写入如 ...

  2. 《学习OpenCV3(中文版)》图书目录

    计算机视觉是在图像处理的基础上发展起来的新兴学科.OpenCV是一个开源的计算机视觉库,是英特尔公司资助的两大图像处理利器之一.它为图像处理.模式识别.三维重建.物体跟踪.机器学习和线性代数提供了各种 ...

  3. 如何学习Flex Framework

    如何学习Flex Framework 最近由於種種緣故又要開始做點教育訓練的事,先趁現在有空把手邊的資料整理一下. *Flex 的基礎架構 關於 flex 基本上常被問到的不外乎就是「如何可以學好它? ...

  4. TensorFlow 深度学习实战指南中文版

    TensorFlow 深度学习实战指南中文版 第 1 章入门 安装 TensorFlow 简单的计算 逻辑回归模型构建 逻辑回归训练 第 2 章深度神经网络 基本神经网络 单隐藏层模型 单隐藏层的说明 ...

  5. 【转】学习Entity Framework 中的Code First

    这是上周就写好的文章,是在公司浩哥的建议下写的,本来是部门里面分享求创新用的,这里贴出来分享给大家. 最近在对MVC的学习过程中,接触到了Code First这种新的设计模式,感觉很新颖,并且也体验到 ...

  6. 如何深入学习 Android Framework

    为什么要学 Framework 为什么要学 Framework?最直接最功利的原因就是面试要问,比如: Activity 的启动过程,这个会涉及到 AMS/ATMS 和 WMS 的实现 Binder ...

  7. LaTeX学习笔记(中文版使用)

    下面是一篇优秀的LaTeX学习笔记, 转自: http://vincentme.org/post/LaTeX_study_note.php LaTeX LaTeX(LATEX,音译"拉泰赫& ...

  8. 厉害了,Github标星113K的前端学习路线图有中文版了

    Github上有个前端学习资源一直很火--developer-roadmap,这是国外的一个大佬整理出来的,标星113K,由此可见它有多受欢迎,国内的许多开发者都知道有这么一个项目存在,但苦于英文水平 ...

  9. 有人把吴恩达老师的机器学习和深度学习做成了中文版

    近年来 AI 越来越火,吴恩达是被公认的人工智能(AI)和机器学习领域国际最权威的学者,他一直致力于普及.宣传.推广 AI 教育,包括最前沿.最火爆的 AI 基础课程.深度学习课程等等.惠及全球超过 ...

最新文章

  1. Visual Studio 2013 在使用 razor无智能提示的解决办法
  2. luogu 3806
  3. 51..分治算法练习:  4378 【Laoguo】循环比赛
  4. IBM存储部分常见配件PN号查询及描述翻译
  5. 关于SRAM,DRAM,SDRAM,以及NORFLASH,NANDFLASH
  6. 渗透测试方法论、流程 及NMAP简介
  7. 关于DevExpress Winform GridControl GridView 主从表(Master-Detail)导出Excel问题
  8. 【C++】给定两个没有刻度的容器,对于任意给定的容积,求出如何只用两个瓶装出L升的水
  9. 再见2018,你好2019!
  10. TMS320F28335与10位数模转换器TLC5615的SPI通讯问题2(数模转换芯片TLC5615 原理篇)
  11. 战国破坏神引擎全面升级 游戏画质大幅提升
  12. 中小企业常遇到这些问题,看APS系统是如何解决的
  13. [李宏毅 机器学习笔记] Gradient Descent
  14. Lock作用及其使用
  15. uniapp onChooseAvatar,uniapp微信头像昵称填写,uniapp chooseAvatar,does not have a method “onChooseAvatar“
  16. 百度地图level对应距离(比例尺级别对应的多少米)
  17. 和stormzhang面基后的5点感悟,值5次付费199!
  18. 雷军带领小米老员工公园步行 称这些人是小米最宝贵财富
  19. ts报错:Object is possibly ‘undefined‘.Vetur(2532)
  20. 基于javaweb的进销存管理系统(前后端分离+java+vue+springboot+ssm+mysql+redis)

热门文章

  1. html登录错误有提示,为什么我登录之后的提示老是网页上有错误呢?
  2. 芯片验证需要围绕DUT做什么?
  3. linux学习笔记三: secureCRT小键盘输入数字键的时候,出现字母的解决方法:
  4. springboot集成redis报错找不到bean
  5. 阿里巴巴真的会收购雅虎吗?
  6. 服务器定时任务 Crontab
  7. Heart_deconvolution giotto解卷积
  8. C# 打印预览 PrintDocument打印、打印预览
  9. 更改安卓系统开机画面
  10. 145.7. Miscellaneous