这是对一个普通的NSLog的扩展,它控制布局、颜色和附加信息,而不改变NSLog命令为ALOG、BLOG、DEBLOG或任何其他命令。如果某个地方缺少ExtendNSLog,.....
一旦你包括了文件(ExtendNSLog.h和ExtendNSLog.m),我建议你在YOURAPPLICATION-Prefix.pch中包括它们。
只需插入以下行:
#import "ExtendNSLog.h"
然后你的Prefix文件应该看起来像这样:
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "ExtendNSLog.h"
#endif
这使你所有的代码都可以重新格式化你的代码中已有的NSLog输出,而无需更改代码中的一行。
要使用Xcode控制台的颜色功能,你必须包括插件XCodeColors(https://github.com/robbiehanson/XcodeColors)。只需下载项目的ZIP包,然后在XCode中构建它。然后重启Xcode。
如果你的NSLog输出以#开头,则下一个符号被解释为显示命令。
所有命令都以#开头,例如
NSLog(@"\#COLOR:%@", NSLOG_USER1_COLOR); // Set User color for normal output in USER1_COLOR
或
NSLog(@"\#!Print this line in the %@", @"error color");
命令描述
#! 此单个输出以错误颜色显示
#? 此单个输出以警告颜色显示
#. 此单个输出以信息颜色显示
#0 此单个输出以默认颜色显示
#1..#6 此单个输出以NSLOG_USER_1 (..6)颜色显示
这些命令在它们被禁用/激活之前切换显示
命令描述
#SHOWFILENAME 在输出前显示 .m 文件名
#SHOWFUNCTIONNAME 在输出前显示方法名
#SHOWLINENUMBER 在输出前显示行号
隐藏文件名 在输出前隐藏 .m 文件名
隐藏函数名 在输出前隐藏方法名
隐藏行号 在输出前隐藏行号
LOGTOFILE 将日志发送到用户文件系统中的一个名为 console.log 的文件。如果用户没有连接到 xcode/simulator 系统,则始终开启。适用于从远程用户/测试员获取信息
TEST 通过扩展的 NSLog 功能显示几个输出变体
CLEAR 删除日志文件并重新启动/清除屏幕
NSLOGINFO 显示常规日志信息
TIMESTAMP 打印时间戳
- 打印一个新的(空)行
DISPLAYONLY xx 仅显示匹配状态 xx 的 NSLog 命令,例如
NSLog(@"#DISPLAYONLY %d", NSLOG_WARNING + NSLOG_USER1);
NSLog(@"#HidEFILENAME");
NSLog(@"#1Extended NSLog Version %@", EXTENDEDNSLOGVERSION);
NSLog(@"#!This is an error");
NSLog(@"#?This is a warning");
NSLog(@"#.This is an info line");
NSLog(@"#1This is User Color 1");
NSLog(@"#2This is User Color 2");
NSLog(@"#3This is User Color 3");
NSLog(@"#4This is User Color 4");
NSLog(@"#5This is User Color 5");
NSLog(@"#6This is User Color 6");
NSLog(@"#0This is the default color ");
NSLog(@"Just a normal string without formatting");
NSLog(@"Just another normal string without formatting");
NSLog(@"And another string without formatting");
NSLog(@"#DISPLAYONLY: %d", NSLOG_ERROR | NSLOG_DEFAULT);
NSLog(@"And starting from now only ERROR and DEFAULT NSLogs are displayed");
NSLog(@"#!This is an error");
NSLog(@"#?This is a warning");
NSLog(@"#.This is an info line");
NSLog(@"#1This is User Color 1");
NSLog(@"#-"); /// just an empty line
NSLog(@"#FOREGROUND: %@", @"00EEEE");
NSLog(@"#BACKGROUND: %@", @"222222");
NSLog(@"From now on, normal NSLOGs will be displayed in this color");
此代码将产生以下输出
嗯,最简单的方法 - 如同以往 - 是使用 CocoaPods
pod 'EnrichedNSLog', '~> 1.0'
但如果您不想使用 pods,只需将两个文件 ExtendNSLog.h 和 ExtendNSLog.m 拖入您的项目中。
在两种情况下,为了丰富 NSLog 输出,只需编辑您的 .prefix 文件(通常在 Supportig files 组中)并添加导入行
#import "ExtendNSLog.h"
这样所有 NSLog 输出都可以通过提到的命令来丰富。