码迷,mamicode.com
首页 > 其他好文 > 详细

关于CocoaLumberjack安装过程中遇到的问题

时间:2015-08-17 19:16:20      阅读:3760      评论:0      收藏:0      [点我收藏+]

标签:

相关描述:

1、CocoaLumberjack是什么?

2、为什么要用CocoaLumberjack?

3、CocoaLumberjack怎么用?

对于问题一,

CocoaLumberjack是Mac和iOS上一个集快捷、简单、强大、灵活于一身的日志框架。类似于流行的日志框架(如log4),但它是为Objective-C设计的,利用了多线程、CGD(如果可用)、原子锁操作Objective-C运行时的特性。

问题二,

快速

CocoaLumberjack比NSLog快了一个数量级

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

强大

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

 灵活性

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

 总结来说为什么我们要使用LumberJack,在什么情况下需要使用它呢?

1.你想找到一种方式来跟踪在程序中不断出现的不可复制的bug;

2.你对iPhone上的简短日志感到很失望;

3.出于支持系统和稳定性的需要,你想将应用程序升级到下一级别;

4.为你的应用程序(Mac或者iPhone)寻找企业级的日志解决方案。 

接着我们简单介绍一下这个工具的相关组件:

CocoaLumberjack是由DDASLLoggerDDTTYLoggerDDFileLogger三个Log组件组成,各自的功能描述如下:

  • DDASLLogger:支持将调试语句写入到苹果的日志中。一般正对Mac开发。。
  • DDTTYLogger:支持将调试语句写入xCode控制台。在iOS开发中使用。
  • DDFileLogger:支持将调试语句写入到文件系统。

日志的级别有如下几种:

  • LOG_LEVEL_ERROR:如果设置为LOG_LEVEL_ERROR,仅仅能看到Error相关的日志输出。
  • LOG_LEVEL_WARN:如果设置为LOG_LEVEL_WARN,能看到Error、Warn相关的日志输出。
  • LOG_LEVEL_INFO:如果设置为LOG_LEVEL_INFO,能够看到Error、Warn、Info相关的日志输出。
  • LOG_LEVEL_DEBUG:如果设置为LOG_LEVEL_DEBUG,能够看到Error/Warn/Info/Debug相关的日志输出。
  • LOG_LEVEL_VERBOSE:如果设置为LOG_FLAG_VERBOSE,能够看到所有级别的日志输出。
  • LOG_LEVEL_OFF:不输出日志。

下面介绍一下结合XcodeColor如何使用这个工具

1、如果你的Xcode已经安装了Cocoapods,在Podfile中添加“pod ‘CocoaLumberjack‘”(外面双引号除外),然后执行pod update 指令

2、创建一个common.h头文件,里面配置日志记录级别:

技术分享

 

3、下载安装XcodeColor插件,然后Command+B编译项目可以自动将插件安装至~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XcodeColors.xcplugin路径下。彻底退出Xcode,重新启动Xcode。再次打开XcodeColors.xcodeproj运行TestXcodeColors的target,测试插件是否安装成功。

说明:可能在Xcode中无法正常显示颜色,需要配置Xcode的环境变量,设置“Edit Scheme”-> “Run” –> “Arguments”(Environment Variabl)环境变量,添加一个叫做XcodeColors并且设置值为YES,如下图所示。

技术分享

4、设置LogFormatter

我们可以定制自己的Log的方式。通过创建一个类实现DDLogFormatter协议的方法- (NSString *)formatLogMessage:(DDLogMessage *)logMessage;,如下创建一个MyLogFormatter类,并实现如下方法:

 - (NSString *)formatLogMessage:(DDLogMessage *)logMessage{
  
    NSString *logLevel = nil;
    switch (logMessage->logFlag)
    {
        case LOG_FLAG_ERROR:
            logLevel = @"[ERROR] >  ";
            break;
        case LOG_FLAG_WARN:
            logLevel = @"[WARN]  >  ";
            break;
        case LOG_FLAG_INFO:
            logLevel = @"[INFO]  >  ";
            break;
        case LOG_FLAG_DEBUG:
            logLevel = @"[DEBUG] >  ";
            break;
        default:
            logLevel = @"[VBOSE] >  ";
            break;
    }

    NSString *formatStr = [NSString stringWithFormat:@"%@[%@ %s][line %d] %@",
                           logLevel, logMessage.fileName, logMessage->function,
                           logMessage->lineNumber, logMessage->logMsg];
    return formatStr;
}

实例化:

/set formatter
    MyLogFormatter *formatter = [[MyLogFormatter alloc] init];

  //添加输出到Xcode控制台
  [[DDTTYLogger sharedInstance] setLogFormatter:formatter];
  [DDLog addLogger:[DDTTYLogger sharedInstance]];
  
 

最后在相关地方进行测试即可:

    DDLogInfo(@"DDLogInfo");

    DDLogError(@"DDLogError");

    DDLogWarn(@"DDLogWarn");

    DDLogDebug(@"DDLogDebug");

    DDLogVerbose(@"DDLogVerbose");

输出效果图;

技术分享

相关补记:

 * 由于Xcode6后就创建工程就不再自动创建.pch文件了,所以这里我们必须手动自己创建它,相关方法:创建.pch文件到Xcode6,其中$(SRCROOT)就是该工程的相对路径

 *在创建common.h文件的时候,在该文件中导入pods第三方库的头文件,会提示错误“not found file ***”,经过网上查找,找到解决方法

设置 Project->Info->Configurations之后  clear ,然后再编译 
在Configurations里面吧Debug 和Release的Tests 的None改为pods

技术分享

参考链接:

https://github.com/CocoaLumberjack/CocoaLumberjack

http://git.devzeng.com/blog/using-logging-tools-in-ios.html

http://mobile.51cto.com/hot-436334.htm

http://www.cnblogs.com/liufan9/p/3552832.html

http://blog.cnbluebox.com/blog/2014/06/06/shi-yong-cocoalumberjackhe-xcodecolorsshi-xian-fen-ji-loghe-kong-zhi-tai-yan-se/

关于CocoaLumberjack安装过程中遇到的问题

标签:

原文地址:http://www.cnblogs.com/zlbsouche/p/4730823.html

(1)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!