Xcodeのログを色付きで

Xcodeのログを色付きでXcodeColorsというXcodeのログ出力をカラーにできるPlug-inを導入してみました。
新規プロジェクト作成時のセットアップ手順が極力シンプルになるよう、CocoaLumberjackは使わずに、元々使っていたプリプロセッサマクロをいじって以下のことができるようにしました。

  • DEBUGビルドの場合にのみログ出力する。(RELEASEビルドではログ出力しない)
  • インスタンスのクラス名+メソッド名と、コード中の行番号を表示。
  • カラーパターンについては、標準パターンと、背景色付き(赤、緑、青の3パターン)を用意。

準備

1. XcodeColorsの導入

https://github.com/robbiehanson/XcodeColorsをRELEASEビルドしてインストール。(Runではなく、ArchiveするとRELEASEビルドしてくれます。)

 

2. 以下のコードを .pchにコピペ(新規プロジェクト作成時)

(スニペット登録しておくと便利)


#ifdef DEBUG
//#if (TARGET_IPHONE_SIMULATOR && DEBUG)
#define TRACE(fmt, ...) NSLog((@"\033[fg0,118,135;(%d)\033[fg50,80,200;%s \033[fg0,0,0;" fmt @"\033[;"),__LINE__,__PRETTY_FUNCTION__, ##__VA_ARGS__);
#define TRACE_R(fmt, ...) NSLog((@"\033[bg255,180,180;\033[fg0,118,135;(%d)\033[fg50,80,200;%s \033[fg0,0,0;" fmt @"\033[;"),__LINE__,__PRETTY_FUNCTION__, ##__VA_ARGS__);
#define TRACE_G(fmt, ...) NSLog((@"\033[bg180,255,180;\033[fg0,118,135;(%d)\033[fg50,80,200;%s \033[fg0,0,0;" fmt @"\033[;"),__LINE__,__PRETTY_FUNCTION__, ##__VA_ARGS__);
#define TRACE_B(fmt, ...) NSLog((@"\033[bg180,180,255;\033[fg0,118,135;(%d)\033[fg50,80,200;%s \033[fg0,0,0;" fmt @"\033[;"),__LINE__,__PRETTY_FUNCTION__, ##__VA_ARGS__);
#else
#define TRACE(...)
#define TRACE_R(...)
#define TRACE_G(...)
#define TRACE_B(...)
#endif

使い方

NSLogの代わりに、TRACEとします。


NSLog(@"hoge: %@",obj);
// ↓
TRACE(@"hoge: %@",obj);


背景色付きにしたい場合は、


TRACE_R(@"hoge: %@",obj); // 背景を赤く


です。

こんな感じになります。


Comments are closed.