有什么办法用NSLog打印彩色?

时间:2012-01-25 15:58:36

标签: ios colors nslog

在典型的彩色终端中,可以使用转义序列来打印不同颜色的文本。通常有8种颜色可供选择。我尝试在NSLog中使用标准的ANSI转义序列,但没有骰子。它不支持该机制。

是否有不同的方法使用NSLog以彩色方式打印到控制台(日志)?

感谢。

4 个答案:

答案 0 :(得分:96)

您可以使用Apple Color Emoji为日志输出添加一些颜色,如下所示:

if ([self isKindOfClass:[UITableViewController class]])
    NSLog(@" Table View controller Will appear: %@", NSStringFromClass([self class]));
else  if ([self isKindOfClass:[UINavigationController class]])
    NSLog(@" Navigation controller Will appear: %@", NSStringFromClass([self class]));
else
    NSLog(@" View controller Will appear: %@", NSStringFromClass([self class]));

由于上述代码可能在非OS-X平台上显示不正确,因此我附上了XCode的屏幕截图,显示了代码和日志输出:

Screenshot from X Code with Apple Color Emoji in code and log output

答案 1 :(得分:8)

这样的一条线对我有用:

NSLog(@"\e[1;31mRed text here\e[m normal text here");

(更多颜色可用here

请注意,您必须在常规控制台中实际观察输出,因为Xcode调试控制台似乎不支持着色。

答案 2 :(得分:6)

Ayoy的方法似乎在基于命令行的应用printf中起作用:

但是,我不认为这适用于内置的Xcode控制台:

此:

NSLog(@"\e[1;31mRed text here\e[m normal text here");

......结果如下:

答案 3 :(得分:6)

您可以使用此Xcode插件为NSLog输出着色:https://github.com/DeepIT/XcodeColors

我用my quick setup instructions and simple custom macros写了几行。

更新:我现在正在使用NSLogger颜色支持。非常强大。