Cafe moba for App Insight是一款轻量级的日志记录与跟踪库,为应用开发者提供了一种可定制的访问、分析和可视化用户与应用交互方式的方法。
访问https://appinsight.cafemoba.com并注册一个账户。这将为您提供访问API密钥的权限。稍后您将需要它。
#import <AppInsight/AppInsight.h>
您可以在AppInsightDemo Xcode项目中查看和尝试我们设置的示例日志消息。您需要通过AppInsight注册并获取API密钥。之后,在AppInsightDemo-Info.plist中替换AppInsight键的值。
现在您应该能够在XCode模拟器中构建并运行示例项目了。
本质上,有三种日志记录方式。
例如,要使用AFNetworking记录网络状态变化,可以这样做:
- (void)networkStatusChanged:(AFNetworkReachabilityStatus)status
{
switch (status) {
case AFNetworkReachabilityStatusReachableViaWWAN:
AI_LogTag(@"Network", @"WWAN");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
AI_LogTag(@"Network", @"WiFi");
break;
default:
break;
}
}
可以通过利用标记特性来实现日志消息的分组。要计算代码的部分,应同时使用AI_LogTag(tag, ...)
和AI_LogTagStopTimer(tag, ...)
。
如果您想要计算获取图片所需的时间,可以这样做:
- (void)loadImageForPhotoURL:(NSURL *)photoURL completionBlock:(FlickrPhotoCompletionBlock) completionBlock
{
AI_LogTag(@"Photo Name", [photoURL absoluteString]);
NSURLRequest *photoRequest = [NSURLRequest requestWithURL:photoURL];
AFImageRequestOperation *operation = [AFImageRequestOperation
imageRequestOperationWithRequest:photoRequest
imageProcessingBlock:NULL
success:
^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
completionBlock(image, nil);
AI_LogTagStopTimer(@"Photo Name", [photoURL absoluteString]);
}
failure:
^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
completionBlock(nil, error);
AI_LogTagStopTimer(@"Photo Name", [photoURL absoluteString]);
}];
[self enqueueHTTPRequestOperation:operation];
}
注意:如果两个连续的AI_LogTag(tag, ...)
用相同的Tag名称记录,则第二个调用将解释为第一个调用之前的AI_LogTagStopTimer(tag, ...)
。计数和所用时间统计将适当地反映这一点。
注意:如果没有给定Tag的先前AI_LogTag(tag, ...)
,则使用AI_LogTagStopTimer(tag, ...)
将忽略日志请求。