web-dev-qa-db-ja.com

NSLogでカラーで印刷する方法はありますか?

典型的なカラー端末には、テキストを異なる色で印刷するために使用できるエスケープシーケンスがあります。通常、8色が使用可能です。 NSLogではこれに標準のANSIエスケープシーケンスを使用しようとしましたが、サイコロは使用しませんでした。そのメカニズムではサポートしていません。

NSLogを使用してコンソール(ログ)にカラーで印刷する別の方法はありますか?

ありがとう。

47
user945620

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

96
Lena Schimmel

このような行は私のために働く:

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

(他の色も利用可能 ここ

Xcodeデバッグコンソールはカラーリングをサポートしていないため、通常のコンソールで実際に出力を監視する必要があることに注意してください。

8
ayoy

このXcodeプラグインを使用して、NSLog出力を色付けできます。 https://github.com/DeepIT/XcodeColors

クイックセットアップ手順と簡単なカスタムマクロ を使用して数行を書きました。

Update:今使用しているのは NSLogger カラーサポート付きです。非常に強力です。

6
djromero

Ayoyのアプローチは、コマンドラインベースのアプリでprintfを使用すると一般的に機能するようです:

ただし、これは組み込みのXcodeコンソールでは機能しないと思います。

この:

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

...この結果:

6
Besi