どうも。
NSLogによる出力をコンソールで確認。
デバッグ時によくやることです。
常にMacと端末をつなげて、
1台もしくは2台程度でデバッグ実行する場合にはいいのですが、
台数が多くなってきたり、
持って歩いて動作確認といった状況が発生した時に、
ログ出力が確認出来ない…。
NSLogの出力先は、
通常は標準エラー出力(stderr)です。
それをファイルにリダイレクトすればいい。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *path = [docDir stringByAppendingPathComponent:@"log.txt"];
freopen([path cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
NSUserDomainMask,
YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *path = [docDir stringByAppendingPathComponent:@"log.txt"];
freopen([path cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
上記コードでは、
(App)/Documents/log.txt
にコンソールの内容が出力される。
これを、
AppDelegateのdidFinishLaunchingWithOptions
辺りに書いておけばよいかと。
ファイルの内容やファイル自体の破棄など、
ログファイルのライフサイクルは、
freopen()のオプションで変えるとか、
ファイルを破棄する処理を組み込むとか、
実情に応じた形で。
それでは。
ちゃお☆
まこぴー。