By | 2013年2月3日

Xcode のコンソールには OS が出力したりと視認性がそこまでよくありません。
というわけで色付けできないかなと思ったらすぐにできたので紹介したいとおもいます。

robbiehanson/XcodeColors を clone してきて build するとインストールされます。
Xcode を再起動すると準備は万端です。

robbiehanson/CocoaLumberjack を使うとカラーリングやログレベルに応じた出力などが簡単にできて便利です。

みなさんよく使ってると思いますが、呼び出し元、行数を同時に出力するようなデバッグマクロを見やすくしてみようと思います。
これは自分で書いたメッセージをパっと見で分からないのがいけてないなと思ってました。
なのでカラーリングして見やすくしています。
結構みやすくなって個人的には気にいってます。

#define LOG(A, ...) \
    NSLog( \
        @"\033[fg255,255,0;" @"%s" "\033[fg0,255,0;" @"@L%d " @"\033[;" @"%@", \
        __PRETTY_FUNCTION__, \
        __LINE__, \
        [NSString stringWithFormat:A, ## __VA_ARGS__] \
    );

Xcode Console

これのおかげで”!!!!!!!!”とかプレフィクスつけてログの中で目立つようにしてたのでいらなくなりました。
使い出すとやみつきになりそうですね。

ただXcode のコンソールで実機デバッグする際はカラーリングされますが
organizer 経由でログを見た時はバケてるように見えるので気をつける必要があります。

実機に配布したりする際にはオフった方がよいみたいなので少し改良してこのようにしてます。

#define LOG(A, ...) \
        NSLog( \
            ((getenv("XcodeColors") && (strcmp(getenv("XcodeColors"), "YES") == 0)) ? @"\033[fg255,255,0;" @"%s" "\033[fg0,255,0;"  @"@L%d " @"\033[;" @"%@" : @"%s@L%d %@"), \
            __PRETTY_FUNCTION__, \
            __LINE__, \
            [NSString stringWithFormat:A, ## __VA_ARGS__] \
        );

環境変数に XcodeColors が YES で登録されてる際のみ色をつけるようにしてます。
これは CocoaLumberjack でカラーリングする際にもこの環境変数を参照するようになっているため
同じようにしました。
これで実機にビルドする際は環境変数を設定しないようにすれば安心ですね。
設定方法はここをみるとわかりやすいと思います。
それではナイスなカラーリングライフを!