【iOS】XcodeColors插件与CocoaLumberjack工具
工欲善其事必先利其器,好的开发者一定是懂得利用工具来提高自己的效率的,Xcode有很多第三方插件可以使用,最近发现一个可以给控制台着色的工具XcodeColors,结合CocoaLumberjack一起使用可以让控制台有选择的输出信息,可以把输出到控制台的信息分为多种类型,在不同场景下输出不同的信息
下面记录一下如何使用XcodeColors / CocoaLumberjack 和过程中遇到的问题
用于控制台着色的工具,地址在https://github.com/robbiehanson/XcodeColors,下载完直接安装运行工程 XcodeColors 即可,然后运行 TestXcodeColors 检查是否安装成功,如果在控制台打印出有颜色的文本,说明安装成功,如下图

插件安装完成后可以在Xcode的插件目录下找到,目录如下
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XcodeColors.xcplugin
自带的project只有一个mac工程,下面我们自己验证一下在iOS项目下是否也能正常使用,新建一个Target:TestiOSXCodeColors,依葫芦画瓢测试代码也写在Appdelegate.m文件里面
#import "AppDelegate.h" #define XCODE_COLORS_ESCAPE_MAC @"\033["
#define XCODE_COLORS_ESCAPE_IOS @"\xC2\xA0[" #if TARGET_OS_IPHONE
#define XCODE_COLORS_ESCAPE XCODE_COLORS_ESCAPE_IOS
#else
#define XCODE_COLORS_ESCAPE XCODE_COLORS_ESCAPE_MAC
#endif #define XCODE_COLORS_RESET_FG XCODE_COLORS_ESCAPE @"fg;" // Clear any foreground color
#define XCODE_COLORS_RESET_BG XCODE_COLORS_ESCAPE @"bg;" // Clear any background color
#define XCODE_COLORS_RESET XCODE_COLORS_ESCAPE @";" // Clear any foreground or background color #define LogBlue(frmt, ...) NSLog((XCODE_COLORS_ESCAPE @"fg0,0,255;" frmt XCODE_COLORS_RESET), ##__VA_ARGS__) @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ NSLog(@"After building the XcodeColors plugin for the first time, you MUST RESTART XCODE.");
NSLog(@"If you still don't see colors below, please consult the README."); NSLog(XCODE_COLORS_ESCAPE @"fg0,0,255;" @"Blue text" XCODE_COLORS_RESET); NSLog(XCODE_COLORS_ESCAPE @"bg220,0,0;" @"Red background" XCODE_COLORS_RESET); NSLog(XCODE_COLORS_ESCAPE @"fg0,0,255;"
XCODE_COLORS_ESCAPE @"bg220,0,0;"
@"Blue text on red background"
XCODE_COLORS_RESET); NSLog(XCODE_COLORS_ESCAPE @"fg209,57,168;" @"You can supply your own RGB values!" XCODE_COLORS_RESET); LogBlue(@"Blue text via macro"); return YES;
} - (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
} - (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
} - (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
} - (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
} - (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
} @end
AppDelegate.m
结果发现在iOS项目下颜色不但没有奏效,并且把其他部分的信息页打印出来了

观察代码发现,不同地方在与
#define XCODE_COLORS_ESCAPE_MAC @"\033["
#define XCODE_COLORS_ESCAPE_IOS @"\xC2\xA0["
尝试把 XCODE_COLORS_ESCAPE_IOS 也换成 XCODE_COLORS_ESCAPE_MAC 结果就可以正常显示
#define XCODE_COLORS_ESCAPE_MAC @"\033["
#define XCODE_COLORS_ESCAPE_IOS XCODE_COLORS_ESCAPE_MAC
不知道为何 XCODE_COLORS_ESCAPE_IOS 的值不能生效,如果要使用的就直接用MAC那个宏
还有一种更为简单的方法安装XcodeColors,通过 Alcatraz 包管理器,直接搜索安装

CocoaLumberjack是Mac和iOS上一个集快捷、简单、强大和灵活于一身的日志框架,有点像java的log4j,CocoaLumberjack 对提供了很强大的输出日志的功能,不仅可以输出信息到控制台,还可以输出到苹果的日志系统,文件,关于CocoaLumberjack的详细使用,参见官网的说明
下面我们看看控制台着色是否正常:
1、新建一个工程
2、通过 cocoapods 加入 CocoaLumberjack
3、测试
//添加控制台输出Logger
[DDLog addLogger:[DDTTYLogger sharedInstance] withLevel:DDLogLevelAll];
//允许着色
[[DDTTYLogger sharedInstance] setColorsEnabled:YES]; //输出信息
DDLogError(@"错误信息"); //红色
DDLogWarn(@"警告"); //橙色
DDLogInfo(@"提示信息"); //默认颜色
DDLogDebug(@"调试信息"); //默认颜色
DDLogVerbose(@"详细信息"); //默认颜色
运行发现,控制台信息并没有着色

一番搜索发现,需要配置Xcode环境 XcodeColors才会生效

添加环境变量 XcodeColors:YES

重新运行,成功

我们把输出等级设为 DDLogLevelWarning,只输出警告信息和错误信息

CocoaLumberjack 还支持输出不同类型的信息,还支持配置输出到控制台的颜色,这样我们就可以只在控制台输出错误信息,只输出警告信息等,更多功能参见网站
Demo:http://files.cnblogs.com/files/bomo/CocoaLumberjackTest.zip
【iOS】XcodeColors插件与CocoaLumberjack工具的更多相关文章
- IOS越狱插件汉化工具
提取插件文件“*.plist"进行制作汉化文件plist文件路径查看方法:安装插件后在cydia中查看该插件页底部“文件系统内容”使用文件管理软件提取(filza;ifile.....) 如 ...
- fir.im Weekly - 17 个提升 iOS 开发效率的必备工具
本期 fir.im Weekly 精选了一些iOS 开发工具和动画源码分享,希望每个开发者能专注效率.实用.灵感. iOS开发工具--如何优化ipa包大小 @iOS程序犭袁 推荐了关于"如 ...
- iOS 程序插件及功能动态更新思路
所用框架及语言 iOS客户端-Wax(开发愤怒的小鸟的连接Lua 和 Objc的框架),Lua,Objc, 服务端-Java(用于返回插件页面) 工具框架链接地址:Wax - https://gith ...
- Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具
基本上每个实体form上都会有单据编号,而且不同的实体编号要求还不太一样,这时就需要一个通用的单据编号插件,可配置以应对不同的需求. 下面简单介绍下实现步骤: 1. 创建二个实体,以保存各实体所要求的 ...
- iOS及时log日志查看工具 (iConsole)
github下载地址:https://github.com/nicklockwood/iConsole 偶然看到的一个iOS及时log日志查看工具,通过该工具,我们可以在任何想看日志的时候,通过手势呼 ...
- Html - 仿Ios assistiveTouch 悬浮辅助球工具
仿Ios assistiveTouch 悬浮辅助球工具 <!DOCTYPE html> <html> <head> <meta charset="u ...
- iOS常用插件
iOS常用插件总结:http://blog.csdn.net/oik_ios/article/details/50251191http://www.jianshu.com/p/d24eea8b405a ...
- 20个可以帮你简化iOS app开发流程的工具
这里推荐20个可以帮你简化iOS app开发流程的工具.很多开发者都使用过这些工具,涉及原型和设计.编程.测试以及最后的营销,基本上涵盖了整个开发过程. 原型和设计 有了一个很好的创意后,你要做的不是 ...
- IOS开发之网络开发工具
IOS开发之网络开发工具 做移动端开发 常常会涉及到几个模块:1.网络检測 2.网络请求get和post请求 3.文件上传 4.文件下载 5.断点续传 如今将这些一一分享给大家 ,也欢迎 ...
随机推荐
- [CoreOS 转载] CoreOS实践指南(六):分布式数据存储Etcd(下)
转载:http://www.csdn.net/article/2015-01-28/2823739/2 摘要:Etcd是CoreOS生态系统中处于连接各个节点通信和支撑集群服务协同运作的核心地位的模块 ...
- 安装与配置 Elasticsearch
环境:centos6.7 #查询已经安装的JDK rpm -qa | grep jdk #卸载 yum -y remove java-1.8.0-openjdk-headless-1.8.0.91- ...
- 【译】Python Lex Yacc手册
本文是PLY (Python Lex-Yacc)的中文翻译版.转载请注明出处.这里有更好的阅读体验. 如果你从事编译器或解析器的开发工作,你可能对lex和yacc不会陌生,PLY是David Beaz ...
- 树莓派保卫战--防止SSH暴力破解
自己用树莓派搭建了个小server,用了很长时间了,最近查看log发现有很多SSH登陆失败,瞬间心就碎了,一直没关心小派的安全问题,怪我咯! 马上行动,首先研究下log:/var/log/auth.l ...
- Android程序的签名保护及绕过方法
随着Android 市场的扩大,各类盗版.破解.打包党纷纷涌现,其使用的手法无非是apk _> smali ->修改代码 ->重打包签名,为对抗此类技术,广大程序员挖掘了Androi ...
- 10个你必须掌握的超酷VI命令技巧
摘要:大部分Linux开发者对vi命令相当熟悉,可是遗憾的是,大部分开发者都只能掌握一些最常用的Linux vi命令,下面介绍的10个vi命令虽然很多不为人知,但是在实际应用中又能让你大大提高效率. ...
- SQLServer 获得所有表结构(包括表名及字段)
then d.name else null end) 表名, a.colorder 字段序号,a.name 字段名, ( then '√'else '' end) 标识, (case when (SE ...
- js两种定义函数、继承方式及区别
一:js两种定义函数的方式及区别 1:函数声明: function sayA() { alert("i am A"); } 2:函数表达式: var sayB = function ...
- 禁用iPhone手机浏览器上给电话号码自动加上的link样式
iPhone手机上的浏览器(如Safari),在解析网页的时候会自动给 像是电话号码的数字 加上link样式. 可以添加下面的meta禁用掉这个功能. // //
- 表格CSS样式美化
1. 单像素边框CSS表格 这是一个很常用的表格样式. <!-- CSS goes in the document HEAD or added to your external styleshe ...