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

相关描述:

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/

时间: 2024-08-28 08:40:10

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

SQL安装过程中“针对SQL Server 注册表的一致性验证“出错解决方式

1.打开注册表,查找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0804],分别打开Counter 和Help 2.打开Counter,把滚动条拉倒最后,然后记下最大的那个值(不同计算机不一样的),记下后关闭窗口 3.同样的打开Help,滚动到最后记最大的那个值(你们的值不一定跟我一样的哦!!!),记下后关闭窗口 4,再重新定位到Perflib的节点上, 5.双击Last Counter然后在

20170514002Oracle 11g R2安装过程中遇到的报错及解决办法

Oracle 11g R2安装过程中遇到的报错及解决办法 1.提示Check if the DISPLAYvariable is set.    Failed<<<< 解决方案: #xhost +  //切换到root用户输入 #su – Oracle  //切换到oracle用户 $./runInstaller  //执行安装程序 xhost 是用来控制X server访问权限的. 通常当你从hostA登陆到hostB上运行hostB上的应用程序时, 做为应用程序来说,hostA

Oracle RAC安装过程中碰到的“坑”和关键点(二)

(1) 依赖包的安装 Linux下安装Oracle,除了系统配置参数,我觉得依赖包的安装是另一个比较琐碎的操作. 本次安装碰到了几个包的问题: (a) rpm -Uvh gcc-4*提示: 02. error: Failed dependencies: 03.    cloog-ppl >= 0.15 is needed by gcc-4.4.7-4.el6.x86_64 04.    cpp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.x86_64 不

Slackware安装过程中遇到的问题

在此记录Slackware安装过程中遇到的问题以及一些杂项.... 1.关于grub安装:如果在安装过程中未安装lilo,可在退出setup,但在重启之前安装grub. chroot /mnt grub-install /dev/sda grub-mkconfig -o /boot/grub/grub.cfg 2.安装后引导出现kernel panic no syncing:vfs unable to mount root fs on... 解决方法:首先chroot from cd(下文提到如

Debian7.6安装过程中遇到的问题

一 sudo命令不能用 1 使用su切换到root用户,命令: su 2 使用名:vim /etc/sudoers添加sudoer用户,命令: vim /etc/sudoers 找到root=(ALL:ALL)ALL,在下面添加: %你的用户名=(ALL)ALL 如果不想输入密码,可如下书写: %你的用户名 ALL=(ALL) NOPASSWD: ALL 二 中文系统切换为英文系统 1 获得root权限,编辑local文件,命令: vim /etc/default/local 2 把已经存在的内

Office 2010 安装过程中出错

今天在安装office2010 的时候一直提示:"安装过程中失败",具体错误信息如下图: 注册表也按照网上的进行了删除,也用微软的清理工具清理过了,杀毒软件也关闭了,Windows Install服务业特意开启了,但还是失败. office卸载工具下载地址:http://download.csdn.net/detail/xunzaosiyecao/7289875 解决方法: 安装的时候,不安装共享和工具就可以成功了. 小注: 安装成功后,如果后面的使用中用到了共享与office工具,在

GODADDY SSL 证书安装过程中的问题

GODADDY 证书安装过程中的问题 1.  注册账号 2.  申请证书 3.  进入SSL 证书  选择"管理" 打开后 可以根据自己的需求下载相应的证书 4.  我这里下载的Nginx的,一个是证书,另一个gd_bundle-g2-g1.crt下载完后上传到WEB服务器上然后配置nginx 如下: listen       443 ssl; server_name  youdomain; ssl                                     on; ssl

MySQL5.7 安装过程中出现 attempting to start service 过不去

MySQL5.7 安装过程中出现 attempting to start service 过不去. 1,机制打开服务,把MySql服务名启动(我的是MySqlAliyun) 启动失败:提示1067错误. 2,在mysql安装目录(C:\Program Files\MySQL\MySQL Server 5.7)下把my-default.ini复制为my.ini 在my.ini取消basedir和datadir的注释: #设置basedir指向mysql的安装路径 basedir= C:\Progr

SCCM2016安装过程中遇到的那些问题

[推荐]SCCM2016 + SQL2016 + Server 2012 R2 安装教程 一.安装过程中遇到的问题 在安装sql的过程中,提示需要安装KB2919355,但无论是下载补丁包手动安装还是自动更新安装均无法正常安装,提示0x8007000d错误.最后通过对比MD5,发现网络问题造成下载的补丁包不正确,再次重新下载后,手动安装解决. 安装SCCM过程中,最后检验步骤提示BITS未安装,但系统中确实已经BITS且后台服务已经运行,后使用命令,在powershell中使用命令再次安装BIT