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

47 colors nslog ios

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

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

谢谢.

Len*_*mel 95

您可以使用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]));
Run Code Online (Sandbox Code Playgroud)

因为上面的代码可能在非OS-X平台上显示不正确,所以我附上了XCode的截图,显示了代码和日志输出:

屏幕截图来自X Code with Apple Color Emoji的代码和日志输出

  • 在小牛队上输入表情符号 - 在山狮上输入Command + Control + Space - 选项+命令+ T. (25认同)

ayo*_*yoy 8

像这样的一条线对我有用:

NSLog(@"\e[1;31mRed text here\e[m normal text here");
Run Code Online (Sandbox Code Playgroud)

(这里有更多颜色)

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

  • 哦,那我不知道,但似乎是这样.肯定这不是`NSLog`的问题,因为Xcode的控制台也没有'printf()`颜色...... (3认同)
  • 您可以通过编辑方案>选项>使用终端来选择输出终端. (2认同)

Bes*_*esi 6

Ayoy的方法似乎在基于命令行的应用程序中有效printf:

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

这个:

NSLog(@"\e[1;31mRed text here\e[m normal text here");
Run Code Online (Sandbox Code Playgroud)

...结果如下:


djr*_*ero 6

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

我用快速设置说明和简单的自定义宏写了几行.

更新:我现在正在使用带有颜色支持的NSLogger.功能强大.

  • XCode 8不支持插件.:( (4认同)