##概要
NSLogger
https://github.com/fpillet/NSLogger
NSLogger Wiki
https://github.com/fpillet/NSLogger/wiki/
- Mac 上のビューアアプリ NSLogger.app に端末からログを送信、Xcode に繋がなくてもリアルタイムで確認できる
- 端末が LAN (Bonjour) 内のどこにいてもログを集められる。対応アプリをただ端末に入れておけばいい
- 通信には SSL も使える
- プロジェクトに3つのソースファイルを追加してから、NSLog() の感覚でログ送信するだけ
- OS X / iOS どちらのプロジェクトでも使える。Android にも対応している?
- ログレベルを設定できる
- 画像データを画像として表示できる
##準備
Github から NSLogger ソース一式を落としてきて、ビューアアプリをビルドする。NSLogger.xcodeproj
を開いて Run を実行。Code sign のエラーが出たらDon't Code Sign
に変更してビルド。詳細は こちらを参照。
出来上がった NSLogger.app を /Applications/
なりにおいておく。
##NSLogger.app の設定
環境設定の Network タブには Bonjour service name やポート番号の設定があるので、適当に設定する。
"Apply" で反映することを忘れずに。
####Bonjour service name
初期状態ではコンピュータ名が使われるので、それが嫌なら自分で空欄を埋める。おそらく英数でないといけない。
####ポート番号
初期状態では適当に割り振られているので、それが嫌なら自分で空欄を埋める。
####"Publish Bonjour service…"
チェックを入れておく。
##組み込む 1
Xcode プロジェクトの Edit Scheme…
> Pre-actions
> Run Script
に open -g -a NSLogger
を記述しておくと自動起動する。
これをしなくても、自分で NSLogger.app を起動させておけばよい。
以下3ファイルをプロジェクトに追加:
- LoggerCommon.h
- LoggerClient.h
- LoggerClinet.m
以下のフレームワークをプロジェクトに関連づけ:
- CFNetwork.framework
- SystemConfiguration.framework
##組み込む 2
AppDelegate なりで事前準備をする。
#####ホスト名とポート番号を指定する
ホスト名(ビューアアプリを動かす Mac の名前)は、"Bonjour service name" に設定した名前と同じものを設定する。ポート番号も同様。
LoggerSetViewerHost(NULL, (CFStringRef)@"NSLoggerHost", (UInt32)12345);
#####オプションを設定する
SSL を使うとか Bonjour を使うとか。
LoggerSetOptions(NULL, kLoggerOption_BufferLogsUntilConnection |
kLoggerOption_UseSSL | // SSL 使う
kLoggerOption_BrowseBonjour | // Bonjour 使う
);
##ログ送信
NSLog() の感覚でログ送信ができるが、API がいろいろ用意されている。ビューアアプリは送信されたメッセージを受け取ると、上記のスクリーンショットようなウインドウを表示する。
#####文字列
もっとも単純なものは、NSLog() のようにメッセージ送信するもの。
NSLog() と同じく、フォーマットや __PRETTY_FUNCTION__
や __LINE__
も使える。
LogMessage(NSString *tag, int level, NSString *format);
#####画像
画像の横幅、縦幅、画像データ(NSData)を引数に与えると、ビューア側で画像として表示される。
LogImageData(NSString *tag, int level, int width, int height, NSData *data);
その他、詳細は こちらを参照