ログ ファイルに最後に追加された行をリアルタイムで読み取り、追加された行をキャプチャする必要があります。
Tail -f に似たもの。
したがって、私の最初の試みは、NSTask を使用して Tail -f を使用することでした。
以下のコードを使用して出力が表示されません。
NSTask *server = [[NSTask alloc] init];
[server setLaunchPath:@"/usr/bin/tail"];
[server setArguments:[NSArray arrayWithObjects:@"-f", @"/path/to/my/LogFile.txt",nil]];
NSPipe *outputPipe = [NSPipe pipe];
[server setStandardInput:[NSPipe pipe]];
[server setStandardOutput:outputPipe];
[server launch];
[server waitUntilExit];
[server release];
NSData *outputData = [[outputPipe fileHandleForReading] readDataToEndOfFile];
NSString *outputString = [[[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding] autorelease];
NSLog (@"Output \n%@", outputString);
次を使用すると、出力が期待どおりに表示されます。
[server setLaunchPath:@"/bin/ls"];
そのテール NSTask の出力をキャプチャするにはどうすればよいですか?
ストリームをファイルに開き、行が追加されるたびに画面に出力できるこの方法に代わるものはありますか? (基本的なロギング機能)