【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.断点续传 如今将这些一一分享给大家 ,也欢迎 ...
随机推荐
- BW标准数据源初始化设置
在安装了一干补丁和做好了BW与R3的链接之后(此处有BISIS操心,具体事宜不详),我们就可以登录到R3系统看个究竟了. 磨刀不误砍柴工,先检查一下两边系统的补丁: R3端如下, ,貌似我们是19,通 ...
- 在Window下安装Oracle 12C Cloud Control Agent
① 准备好安装源,这个ORACLE普通账号无法下载到,有需要的可以联系我 p14570373_112000_Generic.zip,用于Windows 64位操作系统 ② 解压p14570373_ ...
- phonegap3.0 simple
environment: window8(64bit) First you go to the phonegap site and install it. note that installing y ...
- sql server trace 和 Profiler
MS SQL Server Profiler概述: MS SQL Server Profiler是SQL Trace的GUI接口,提供对SQL Server Database Engine ...
- C++ Copy Elision
故事得从 copy/move constructor 说起: The default constructor (12.1), copy constructor and copy assignment ...
- oracle 日期获取
,'YYYY-MM-DD')星期一, to_char(NEXT_DAy(to_date(,'YYYY-MM-DD')星期日 from dual; select to_char(sysdate,'yyy ...
- 从头学Qt Quick(2)-- QML语法从一个简单的例子说起
在上一篇文章中,我们对QtQuick做了简单的介绍,体验了使用QML语言构建一个UI的便捷.这里我们简要介绍一下QML的语法. QML将界面分成一些更小的元素,这些元素可以组成一个组件,QML语言描述 ...
- VS快捷键的简单总结
一.一般的快捷键 Shift+Alt+Enter: 切换全屏编辑 Ctrl+B,T / Ctrl+K,K: 切换书签开关Ctrl+B,N / Ctrl+K,N: 移动到下一书签Ctrl+B,P: 移动 ...
- Python使用libsvm的“ImportError: No module named svmutil”问题
from:http://blog.csdn.net/xmu_jupiter/article/details/46830327 这几天快被Python的一些细节问题整死了,浪费了不少时间.现在把这些记录 ...
- _set_invalid_parameter_handler异常处理函数
VS2005之后的版本,微软增加了一些新的异常机制,新机制在出现错误时默认不通知应用程序,这时程序就崩溃了.所以这种情况下,必须调用_set_invalid_parameter_handler._se ...