デバッグログを開発環境だけで表示する【Objective-C】
はじめに
NSLog が本番のビルドに含まれていると、実機を Mac につないでログを確認できてしまいます。秘密にしておきたい情報などが漏れてしまう恐れがあります。
でも、クライアントはテストしにくい現実があり、ログをいたるところに仕込んでおきたい。そんな時はマクロを定義して、開発環境だけでログを表示するようにしましょう。
実装にあたってこちらの記事を参考にさせていただきました。とても詳しいです!
実装
前述の記事の実装を、自分の好みのフォーマットに変えています。本番環境では DEBUG が定義されていないので else 文が処理され何も表示しません。
Appname-Prefix.pch
// 開発環境だけでデバッグログを表示する。本番環境で情報が漏れることを防ぐ #ifdef DEBUG #define DLog(fmt, ...) NSLog((@"[DEBUG] " fmt), ##__VA_ARGS__); #else #define DLog(...) #endif
呼び出し方法は次のとおり。
DLog(@"ほげー");
実行すると以下のように開発環境のみでログが表示されます。
2013-05-27 10:16:18.468 appname[732:f803] [DEBUG] ほげー
すてき!