据说这段代码可以收集错误信息:
- (void)redirectTNLogToDocumentFolder{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName =@"TaoLan.log";
NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];
NSString *contents = [[NSString alloc] initWithContentsOfFile:logFilePath encoding:NSUTF8StringEncoding error:nil];
NSRange range1 = [contents rangeOfString:@"Terminating app due to uncaught exception"];
NSRange range2 = [contents rangeOfString:@"message sent to deallocated instance"];
if (range1.length > 0 || range2.length > 0) {
NSString *contents1 = [contents stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%c",'\n'] withString:@"<br />"];
if (contents1 && [contents1 length] > 10) {
NSString * bundleVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
NSString * displayName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];
NSString *contents2 = [[NSString alloc] initWithFormat:@"BUG监听报告:<br />手机型号: %@ , 版本: %@ <br />程序名称: %@, 版本:%@<br /> 用户: %d<br /> %@", [[UIDevice currentDevice] systemName], [[UIDevice currentDevice] systemVersion], displayName, bundleVersion, taonanApi.currentUserId, contents1];
[taonanApi updatelog:contents2];
[contents2 release];
}
}
[contents release];
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"w",stderr);
}