Flexible iOS Logging

Flexible iOS Logging « The Brenwill Workshop
Flexible iOS LoggingはBill Hollings氏によるCocoa Touch SDKの開発で使用することができるロギングライブラリィ。

元々Cocoa TouchにはNSLogというロギングのためのライブラリィがあるが、これはprintf同様の非常に簡易なものであり、

    • ロギングレベル(info/error/debug ..etc.)が選べない
    • 条件を設定することが出来ずに必ず実行されてしまう

という弱点があるが、"Flexible iOS Logging"を使うことで簡単にそれを解決することができる。

使い方は非常にシンプルであり、

1.Logging.hをインクルードする
2.ロギングのためのマクロを呼び出す

これだけである。

既に内部ではレベル分けがされており、

LogTrace
LogInfo
LogDebug
LogError

これらを条件変数により使い分けることができる。
また、デフォルトではシンプルなログを採取するが、ログを採取したクラス、メソッド、行番号をログに追加することもできる。

しかしなんといって素晴らしいのはこのライブラリィ、ヘッダファイルに記述されているマクロだけで構成されていることだ。

もう一度書く。Flexible iOS Loggingはヘッダに書かれたマクロだけで構成されている。

マクロで書かれているということは、プリプロセスで条件の設定が完了するため、適切なログレベルの設定を行うによりログ採取が一切含まれないバイナリを作ることが出来る。

マクロを効果的に使ったユーティリティの見本であり素晴らしい。

私はこのライブラリィを常時使うことにしたので、Xcodeのプロジェクト毎に作られる〜Prefix.pchに同ヘッダのインポートを追加している。

Hogehoge-Prefix.pch

#import 

#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif

#ifdef __OBJC__
    #import 
    #import 
    #import "Logging.h"
#endif