jubilee

Programing, Books and more...

NSLog()のリリース時停止漏れを防ぐマクロ

リリース時にNSLog()が仕込まれたままの状態を防ぐ。
デバッグ時のみ、ログ出力(関数名・行番号をつけて)を行う。

アプリ名-prefix.pch

アプリ名-prefix.pchに以下を記載する。

アプリ名-prefix.pch
1
2
3
4
5
6
7
8
#ifdef DEBUG
#define dLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define dLog(...)
#endif

// ALog always displays output regardless of the DEBUG alarm
#define aLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);

使用方法

  • dLog(@“TEST!”); → デバッグ時のみNSLogで出力([関数名] [Line 25] TEST!)
  • dLog(); → これも可([関数名] [Line 25])
  • aLog(); → デバッグ・リリースに関係なく出力される。

参考

http://d.hatena.ne.jp/k2_k_hei/20120511/1336750473