文档章节

使用CocoaLumberjack的一些问题记录

yoyoso
 yoyoso
发布于 2015/03/02 10:58
字数 956
阅读 4813
收藏 3
点赞 1
评论 1

想在Xcode中整一个彩色日志显示,按照GettingStarted.md 一文中的步骤将CocoaLumberjack 2.x整合进我的项目中来,遇到一些问题,当然不乏一些坑,作个记录。


整合步骤:

  • Drag CocoaLumberjack/Framework/{Desktop/Mobile}/Lumberjack.xcodeproj into your project

  • In your App target Build Settings

    • Add to 'User Header Search Paths' $(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/include

    • Set 'Always Search User Paths' to YES

  • In your App target Build Phases

    • Add CocoaLumberjack static library target to 'Target Dependencies'

    • Add libCocoaLumberjack.a to 'Link Binary With Libraries'

  • Include the framework in your source files with

#import <CocoaLumberjack/CocoaLumberjack.h>


1、首先是编译提示Use of undeclared identifier 'LOG_LEVEL_VERBOSE'问题

这个我是按照文档XcodeTricks.md 在pch文件中加了下面的代码:

#ifdef DEBUG
  static const int ddLogLevel = LOG_LEVEL_VERBOSE;
#else
  static const int ddLogLevel = LOG_LEVEL_WARN;
#endif

踩坑1,把LOG_LEVEL_VERBOSE和LOG_LEVEL_WARN换成DDLogLevelVerbose和DDLogLevelError就好了。

修改后的代码应该是:

#ifdef DEBUG
static const int ddLogLevel = DDLogLevelVerbose;
#else
static const int ddLogLevel = DDLogLevelError;
#endif

然后在方法application:didFinishLaunchingWithOptions:中添加以下代码设置颜色显示:

[DDLog addLogger:[DDASLLogger sharedInstance]];
[DDLog addLogger:[DDTTYLogger sharedInstance]];
[[DDTTYLogger sharedInstance] setColorsEnabled:YES];

测试颜色显示的代码:

DDLogError(@"Paper jam");
DDLogWarn(@"Toner is low");
DDLogInfo(@"Warming up printer (pre-customization)");
DDLogVerbose(@"Intializing protcol x26 (pre-customization)");


2、彩色日志显示需要插件XcodeColors插件支持,这个插件我下载的是https://github.com/rvi/XcodeColors里面的,因为它支持了Xcode6.3。


3、用CocoaLumberjack Demo里自带的TextXcodeColors工程测试,pod install后打开TextXcodeColors.xcodeproj,编译提示ld: library not found for -lPods-TXC_ios-CocoaLumberjack

又是一个坑。一般来说,pod install后应该生成xcworkspace文件,但是没有生成TextXcodeColors.xcworkspace文件,我就奇怪了。后来才发现,应该是打开Demos.xcworkspace,然后在里面选择TextXcodeColors这个target,当然前提是先要进入TextXcodeColors文件夹执行pod install才行。尽量使用“pod install --verbose --no-repo-update”


4、Demo里测试日志颜色正常,在自己的项目里就不会显示颜色

坑3。奥秘在于要对Project的Scheme作了如下调整:

    In Xcode bring up the Scheme Editor (Product -> Edit Scheme...)
    Select "Run" (on the left), and then the "Arguments" tab
    Add a new Environment Variable named "XcodeColors", with a value of "YES"


5、内存暴涨问题

加入CocoaLumberjack后,模拟器测试正常,真机测试内存暴涨,导致xcode自动终结联机调试,不调用DDLog相关的代码就没有问题。最终缩小范围,发现把上面的第4步中的Environment Variable给删掉就没有问题,我真是晕了。

而另一个位置的同名项目,我测试是没有这个问题,真是奇哉怪也。

实在是没有办法,把DerivedData里的所有app文件夹全部删掉,再重新运行,就没有问题了。猜测是因为同名项目的缘故?


6、使用静态库

本来解决了上面的问题后使用CocoaLumberjack基本就没什么问题了,可是不幸又被我发现了一个问题,那就是当我要修改app图标和启动图片的时候,即在General--App Icons and Launch Images中点向右箭头时,进入的却是项目Lumberjack.xcodeproj的启动图片设置界面。这说明嵌入Lumberjack.xcodeproj后App Icons and Launch Images混乱了。

于是我想到了使用静态库,在网上找到一个现成的CocoaLumberjack静态库工程,链接是https://github.com/NachoMan/CocoaLumberjack-Static。下载后先执行git submodule update --init --recursive命令更新CocoaLumberjack库,再执行build.sh脚本即可生成一个zip包,里面包含了.a文件和头文件,复制到自己的工程中添加就行了。

可以用lipo -info xxxxx.a命令来检查生成的.a文件的CPU架构。

参考:
iOS开源项目之日志框架CocoaLumberjack
利用 CocoaLumberjack 搭建自己的 Log 系统

Colorful XCode Console





© 著作权归作者所有

共有 人打赏支持
yoyoso
粉丝 48
博文 123
码字总数 43673
作品 0
南京
高级程序员
加载中

评论(1)

蓝色d天空
哥们你太给力了!
项目开发中常用的第三方库

CoverFlow效果 我想最有名的CoverFlow效果的第三方库就是iCarousel了。其下载地址:https://github.com/nicklockwood/iCarousel 模糊效果 iOS7以后就有UIVisualEffect这个控件支持模糊效果。...

hell03W ⋅ 2016/06/14 ⋅ 0

利用 CocoaLumberjack 搭建自己的 Log 系统

先说下需求,我理想中的 Log 系统需要: 可以设定 Log 等级 可以积攒到一定量的 log 后,一次性发送给服务器,绝对不能打一个 Log 就发一次 可以一定时间后,将未发送的 log 发送到服务器 可...

小芒果他爹 ⋅ 2015/03/03 ⋅ 0

那些在学习iOS开发前就应该知道的事(part 2)

英文原文:Things I wish I had known before starting iOS development—Part 2 如果你还没读这篇文章的第一部分,请先读完了再来看第二部分。 那些在学习iOS开发前就应该知道的事(part 1)...

TomatosX ⋅ 2015/06/12 ⋅ 0

iOS 基于CocoaLumberjack构建自己的Log系统

前言 对于一个已经上线的产品,如果项目没有自己的Log系统,产品在线上出现问题,那就只能抓瞎了,所以项目中有一套自己成熟的Log系统是至关重要的。本文主要利用CocoaLumberjack来教大家如何...

上升的羽毛 ⋅ 2017/10/28 ⋅ 0

NXVLogFormatter

NXVLogFormatter 是个简单自定义的 CocoaLumberjack 日志记录。

叶秀兰 ⋅ 2014/03/28 ⋅ 0

iOS开发调试和问题解决策略

iOS开发调试和问题解决策略 经常会听到有人抛出一些很信息很不全的问题,比如界面显示不正确、后端网络请求不通之类的问题,然后开始瞎猜。 我觉得很有必要分享一下解决问题的范式,因为靠猜...

陈圣晗 ⋅ 2015/12/08 ⋅ 0

CocoaLumberjack 的使用

安装XcodeColors插件 下载地址:https://github.com/robbiehanson/XcodeColors安装方法:下载并解压缩XcodeColors-master.zip打开XcodeColors项目,编译项目可以自动将插件安装至~/Library/A...

哥特复心 ⋅ 2014/03/04 ⋅ 1

CocoaLumberjack 记录器--DDMultipeerLogger

DDMultipeerLogger 是使用多点对等连接的 CocoaLumberjack 记录器。

叶秀兰 ⋅ 2014/01/02 ⋅ 0

duplicate symbol _OBJC_IVAR_$_AFHTTPRequestOperation._responseObject in:

想要整合IM功能,用的容联云通讯,结果各种错误,现在这个解决不了 编译最后的时候报错。 linker command failed with exit code 1 (use -v to see invocation) duplicate symbol OBJCIVAR$...

刘慧林 ⋅ 2016/02/18 ⋅ 0

LumberjackConsole

LumberjackConsole 是设备上的 CocoaLumberjack 控制台,支持搜索、过滤等。

红薯 ⋅ 2013/12/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

AppDelegate 设置Root相关

self.window = UIWindow.init(frame: UIScreen.main.bounds) self.window?.backgroundColor = UIColor.white self.window?.makeKeyAndVisible() self.window?.rootViewController = RootTabB......

west_zll ⋅ 12分钟前 ⋅ 0

Java并发系列5--倒计时器CountDownLatch

今天讲一个倒计时器工具,叫CountDownLatch。需要这个工具的场景大概有:当所有的小任务都完成之后,再启动大任务。 先看代码: public class CountDownLatchDemo {static final CountDow...

大大枣 ⋅ 14分钟前 ⋅ 0

SpreadJS使用进阶指南 - 使用 NPM 管理你的项目

前言 SpreadJS作为一款性能出众的纯前端电子表格控件,自2015年发布以来,已经被广泛应用于各领域“在线Excel”数据管理项目中。NPM,作为管理Node.js库最有力的手段,解决了很多NodeJS代码部...

葡萄城控件技术团队 ⋅ 15分钟前 ⋅ 0

Mac下IntelliJ IDEA快捷键大全

https://blog.csdn.net/lisongjia123/article/details/54949364

细节探索者 ⋅ 17分钟前 ⋅ 0

建造者模式

1、工厂模式中创建的对象大都是简单的对象 复杂的产品类并且拥有不同的属性特点的管理就需要用到建造者模式 2、建造者模式: 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以...

职业搬砖20年 ⋅ 19分钟前 ⋅ 0

Mysql数据库开发 怎么优化SQL语句?

 1) 现场抓出慢查询语句 show full processlist;   2) 配置参数:   slow_query_log_file = ON 慢查询开启开关   long_query_time =2 记录大于2秒的sql语句   log_queries_not_usi...

老男孩Linux培训 ⋅ 19分钟前 ⋅ 0

Laravel 安装执行php artisan migrate 出现字段过长错误

最近在自己研究Laravel Laravel版本:5.6 PHP版本:7.1.9 Mysql版本:5.7.19 Apache版本:2.4.27 系统版本:windows10 首先要保证电脑安装了composer,和node.js 执行命令 composer global ...

Marhal ⋅ 24分钟前 ⋅ 0

ELK6.0日志从收集到处理完整版教程(二)

ELK简介 Elasticsearch 开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。也可以认为ElasticSearch是一...

bz_z ⋅ 27分钟前 ⋅ 0

Spark项目之电商用户行为分析大数据平台之(七)数据调研--基本数据结构介绍

目录 一、user_visit_action(Hive表) 1.1 表的结构 1.2 表的说明 二、user_info(Hive表) 2.1 表的结构 2.2 表的说明 三、task(MySQL表) 3.1 表的结构 3.2 表的说明 四、工作流程...

xiaomin0322 ⋅ 32分钟前 ⋅ 0

评分卡模型剖析之一(woe、IV、ROC、信息熵)

信用评分卡模型在国外是一种成熟的预测方法,尤其在信用风险评估以及金融风险控制领域更是得到了比较广泛的使用,其原理是将模型变量WOE编码方式离散化之后运用logistic回归模型进行的一种二...

火力全開 ⋅ 33分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部