使用CocoaLumberjack和XcodeColors实现分级Log和控制台颜色
来源:互联网 发布:网络打印机关闭web登陆 编辑:程序博客网 时间:2024/06/03 22:44
Xcode是一款非常优秀的IDE,但是在日志打印上貌似没有那么多高级的特性,比如分级打印,显示颜色。本博客就介绍下两个开源组件结合使用达到如下效果:
1.CocoaLumberjack
1.1基本介绍
CocoaLumberjack是一个开源工程,为Xcode提供分级打印的策略,源码地址就是CocoaLumberjack
CocoaLumberjack包含几个对象分别可以把Log输出到不同的地方:
- DDASLLogger 输出到Console.app
- DDTTYLogger 输出到Xcode控制台
- DDLogFileManager 输出到文件
- DDAbstractDatabaseLogger 输出到DB
通过ddLogLevel的int型变量或常量来定义打印等级
- LOG_LEVEL_OFF 关闭Log
- LOG_LEVEL_ERROR 只打印Error级别的Log
- LOG_LEVEL_WARN 打印Error和Warning级别的Log
- LOG_LEVEL_INFO 打印Error、Warn、Info级别的Log
- LOG_LEVEL_DEBUG 打印Error、Warn、Info、Debug级别的Log
- LOG_LEVEL_VERBOSE 打印Error、Warn、Info、Debug、Verbose级别的Log
使用不同的宏打印不同级别的Log
- DDLogError(frmt, …) 打印Error级别的Log
- DDLogWarn(frmt, …) 打印Warn级别的Log
- DDLogInfo(frmt, …) 打印Info级别的Log
- DDLogDebug(frmt, …) 打印Debug级别的Log
- DDLogVerbose(frmt, …) 打印Verbose级别的Log
1.2设置LogFormatter
我们可以定制自己的Log的方式。通过创建一个类实现DDLogFormatter
协议的方法- (NSString *)formatLogMessage:(DDLogMessage *)logMessage;
,如下创建一个MyLogFormatter
类,并实现如下方法:
123456789101112131415161718192021222324252627
- (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;}
上面的例子中我们定制了Log能打印自己的等级、类和方法、代码行数。
1.3初始化
CocoaLumberjack的引擎需要我们自己来启动。下面的示例代码
12345678910111213141516171819202122
//set formatter MyLogFormatter *formatter = [[MyLogFormatter alloc] init]; //添加输出到Xcode控制台 [[DDTTYLogger sharedInstance] setLogFormatter:formatter]; [DDLog addLogger:[DDTTYLogger sharedInstance]]; //添加输出到Console [[DDASLLogger sharedInstance] setLogFormatter:formatter]; [DDLog addLogger:[DDASLLogger sharedInstance]]; //添加文件输出 DDFileLogger *fileLogger = [[DDFileLogger alloc] init]; fileLogger.rollingFrequency = 60 * 60 * 24; // 一个LogFile的有效期长,有效期内Log都会写入该LogFile fileLogger.logFileManager.maximumNumberOfLogFiles = 7;//最多LogFile的数量 [fileLogger setLogFormatter:formatter]; [DDLog addLogger:fileLogger]; //添加数据库输出 DDAbstractDatabaseLogger *dbLogger = [[DDAbstractDatabaseLogger alloc] init]; [fileLogger setLogFormatter:formatter]; [DDLog addLogger:dbLogger];
2.XcodeColors
2.1安装
XcodeColors是一个Xcode插件,源码地址:XcodeColors; 代码下下来后打开工程run一次,插件就自动安装到了~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/XcodeColors.xcplugin
路径下。 安装完成重启Xcode
2.2配置scheme
在Scheme中配置Environment Variables, 添加参数XcodeColors为YES.如下图
2.3为DDLog打开颜色
[[DDTTYLogger sharedInstance] setColorsEnabled:YES];
2.4为特定的Log级别设定颜色
[[DDTTYLogger sharedInstance] setForegroundColor:RGBCOLOR(0, 0, 255) backgroundColor:nil forFlag:LOG_FLAG_INFO];
完成以上步骤就可以看到控制台的不同颜色的打印了。。
阅读全文
0 0
- 使用CocoaLumberjack和XcodeColors实现分级Log和控制台颜色
- CocoaLumberjack和XcodeColors定制个性化log系统
- xcode 运用CocoaLumberjack和XcodeColors配置分级打印
- XcodeColors插件与CocoaLumberjack工具
- CocoaLumberjack——带颜色的Log
- CocoaLumberjack——带颜色的Log
- iOS开发进阶 - 日志输出框架CocoaLumberjack与XcodeColors插件的简单使用(swift版)
- Xcode8 安装XcodeColors插件与CocoaLumberjack工具
- Log---CocoaLumberjack
- Log---CocoaLumberjack
- iOS 日志(CocoaLumberjack)及日志在控制台显示颜色(XcodeColor)
- ios CocoaLumberjack——带颜色的Log
- 使用XcodeColors正确姿势
- 如何使用 Visual C# 更改控制台窗口中的文字的背景颜色和前景颜色
- 如何使用 C# 来更改前景颜色和背景颜色,在控制台窗口中的文本的
- 更改控制台字体和背景颜色
- 修改控制台的文字和背景颜色
- 怎么设置控制台前景和背景颜色
- Elipse中发布一个Maven项目到Tomcat
- Python -- 函数传递参数的四种形式
- 适应easyUI datagrid通用的ResultSet转为JSONArray的代码
- 使用Python统计微信好友的男女比例
- 基于Swift的iOS应用程序开发:使用URLSession向服务器发送请求
- 使用CocoaLumberjack和XcodeColors实现分级Log和控制台颜色
- 访问限制
- jzoj5245 【NOIP2017模拟8.8A组】Competing Souls
- ssh卡在debug1: SSH2_MSG_KEXINIT sent解决方法
- Android新手入门进阶之路
- 新手入门必读:一款手游的开发流程是怎样的?
- Kaldi中的nnet3之数据类型
- Notepad++添加右键打开方式
- SpringMVC表单提交错误400排查思路及解决方案