2010年12月13日

GTMLoggerクラス

環境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を追加しておきましょう。
Debug設定

Release構成では以下のように出力されます。

[XXXAppDelegate application:didFinishLaunchingWithOptions:] GTMLoggerError
[XXXAppDelegate application:didFinishLaunchingWithOptions:] GTMLoggerAssert

DebugとInfoが出力されません。
Infoについては、以下のように環境変数を書き換えることにより出力することができるようになります。

setenv("GTMVerboseLogging", "1", 1);

ファイル出力などもサポートされており、デバッグに活用できると思います。
自前でも似たようなものを作ることはできると思いますが、 こういうものを使っておくと車輪の再発明を避けることができます。 品質も自分が作ったものより高いでしょうから。

投稿者 MASATO : 2010年12月13日 17:06 | トラックバック
コメント
コメントする









名前、アドレスを登録しますか?