user945620
user945620

Reputation:

Any way to print in color with NSLog?

In a typical color terminal, there are escape sequences that one can use to print text in different colors. Typically there are 8 colors available. I tried using the standard, ANSI escape sequences for this in NSLog, but no dice. It does not support by that mechanism.

Is there a different way to print to the console (log) in color using NSLog?

Thanks.

Upvotes: 48

Views: 23863

Answers (4)

Lena Schimmel
Lena Schimmel

Reputation: 7493

You can use Apple Color Emoji to add some color to your Log output like this:

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]));

Because the above code might by displayed incorrectly on non-OS-X-platforms, I attached a screenshot of XCode, showing the code and log output:

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

Upvotes: 101

djromero
djromero

Reputation: 19641

You can colorize your NSLog output using this Xcode plugin: https://github.com/DeepIT/XcodeColors

I wrote a few lines with my quick setup instructions and simple custom macros.

Update: I'm using now NSLogger with color support. Much powerful.

Upvotes: 7

Besi
Besi

Reputation: 22939

Ayoy's approach seems to work in general in a command line based app with printf:

However, I don't think this works with the built-in Xcode console:

This:

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

... results in this:

Upvotes: 6

ayoy
ayoy

Reputation: 3835

A line like this works for me:

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

(More colors available here)

Note that you have to actually watch your output in regular console, as Xcode debugging console doesn't seem to support coloring.

Upvotes: 8

Related Questions