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

时间:2022-11-29 18:18:59

相关描述:

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头文件,里面配置日志记录级别:

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

 

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,如下图所示。

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

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");

输出效果图;

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

相关补记:

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

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

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

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

参考链接:

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/