У меня есть простой веб-сервис онлайн для прослушивания почтовых запросов. Он записывает в локальный файл строки, отправленные ему в качестве параметров в теле.
Теперь у меня есть приложение ios, и я хочу отправлять каждое сообщение stderr приложения в веб-службу для регистрации ошибок в онлайн-файле и возможности удаленного просмотра ошибок приложения в реальном времени.
Я знаю, что могу перенаправить сообщения stderr в файл (локальный для устройства), как это
+ (void) redirectNSLogToDocuments {
NSArray *allPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [allPaths objectAtIndex:0];
NSString *pathForLog = [documentsDirectory stringByAppendingPathComponent:@"errLog.txt"];
freopen([pathForLog cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
}
Я знаю, что могу отправить запрос на публикацию следующим образом, и поэтому записать строку 'errorString' в удаленный журнал
NSString *errorString=@"errorIOS";
NSString *errorData =[NSString stringWithFormat:@"errorString=%@",errorString];
NSData *postData = [errorData dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://mywebserviceurl"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
Но если я хочу перенаправить сообщения stderr так, чтобы каждый раз, когда выдавалось сообщение об ошибке, он запускал почтовый запрос в мой веб-сервис и записывал сообщение в удаленный журнал вместо записи в локальный файл устройства?