読者です 読者をやめる 読者になる 読者になる

bekkou68の日記

開発しているサービス, IT技術, 英語など。

デバッグログを開発環境だけで表示する【Objective-C】

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] ほげー

すてき!