[iPhone]Debug Log用マクロ


xcodeでデバッグログを出力するときは普通NSLog()を使うのだが、これが結構重たい上、Releaseビルドでも出力されてしまうのでどうしたもんかと思っていたのだが、設定とマクロでうまくできるのがわかったのでメモ。

プロジェクトの設定を開く。構成でDebugを選択
左下のボタンを押してユーザー定義の設定を追加
GCC_PREPROCESSOR_DEFINITIONSを追加し、DEBUGを設定する
e38394e382afe38381e383a3-4

以下のマクロを、インクルードされるヘッダに定義する

#ifdef DEBUG
#   define TRACE(fmt, ...) NSLog((@"%s(%d) " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#   define TRACE(...)
#endif

ログを出力したい場所で以下の様に使う

TRACE("startDownload genre=%@",genreId);

出力結果
2009-04-16 18:57:18.519 Beatport[14249:20b] -[TrackListViewController startDownload:](76) startDownload genre=10

「オブジェクト名 メソッド名(行番号) ログ」
という形式で出力される。マクロを以下の様に変更するにすると、ファイル名(行番号)で出力される

#   define TRACE(fmt, ...) NSLog((@"%s(%d) " fmt), __FILE__, __LINE__, ##__VA_ARGS__);

出力結果
2009-04-16 19:01:19.699 Beatport[14317:20b] 2009-04-16 19:01:45.633 Beatport[14317:20b] /Users/takatronix/Documents/Beatport/Classes/TrackListViewController.m(76) startDownload genre=10

tAkatronixおすすめのiPhone開発本

iPhone デベロッパーズ クックブック
Erica Sadun
ソフトバンククリエイティブ
売り上げランキング: 84906
詳解 Objective-C 2.0
詳解 Objective-C 2.0
posted with amazlet at 10.01.31
荻原 剛志
ソフトバンククリエイティブ
売り上げランキング: 4163
iPhoneプログラミングUIKit詳解リファレンス
所 友太
リックテレコム
売り上げランキング: 3089
iPhone Core Audioプログラミング
永野 哲久
ソフトバンククリエイティブ
売り上げランキング: 22615
Bookmark and Share

関連記事

    1. No comments yet.
    (will not be published)