環境 | iOS(iPhone) SDK 4.0 |
ライブラリ | Google Toolbox for Mac 1.6.0 |
Google Toolbox for Macに入っていたロギング用のGTMLoggerクラスを使ってみました。
GTMLoggerはNSLogの強化版のようなものです。
@implementation XXXAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { GTMLoggerDebug(@"GTMLoggerDebug"); GTMLoggerInfo(@"GTMLoggerInfo"); GTMLoggerError(@"GTMLoggerError"); GTMLoggerAssert(@"GTMLoggerAssert"); // 以下略
とすると、Debug構成ではコンソールには以下のように出力されます。メソッド名などが付加されています。
[XXXAppDelegate application:didFinishLaunchingWithOptions:] GTMLoggerDebug [XXXAppDelegate application:didFinishLaunchingWithOptions:] GTMLoggerInfo [XXXAppDelegate application:didFinishLaunchingWithOptions:] GTMLoggerError [XXXAppDelegate application:didFinishLaunchingWithOptions:] GTMLoggerAssert
なお、Debug構成かどうかはDEBUGマクロで判断しているようですので、以下のようにDebug構成ではプリプロセッサマクロにDEBUGを追加しておきましょう。
Release構成では以下のように出力されます。
[XXXAppDelegate application:didFinishLaunchingWithOptions:] GTMLoggerError [XXXAppDelegate application:didFinishLaunchingWithOptions:] GTMLoggerAssert
DebugとInfoが出力されません。
Infoについては、以下のように環境変数を書き換えることにより出力することができるようになります。
setenv("GTMVerboseLogging", "1", 1);
ファイル出力などもサポートされており、デバッグに活用できると思います。
自前でも似たようなものを作ることはできると思いますが、
こういうものを使っておくと車輪の再発明を避けることができます。
品質も自分が作ったものより高いでしょうから。