我正在调试第三方SDK,它将许多有用的信息放入控制台。
我曾经在工具提示中显示一些消息(对于我们的测试人员),我从SDK委托中收到这些消息。
但是委托方法不包含很多细节,有时它会变得无助,否则控制台会包含更多有用的信息(特别是如果SDK的日志级别设置为DEBUG_ALL
或类似的话)。
所以,我的问题 - 是否可以观察NSLog
消息并在打印到控制台时以某种方式得到通知?当然我想将字符串消息作为参数?
我想在设备/模拟器屏幕上显示它,这样测试人员就不必运行XCode或查看设备的控制台。
答案 0 :(得分:0)
我正在使用iConsole用于同一目的。这非常有用。
答案 1 :(得分:0)
什么SDK?如果SDK支持CocoaLumberjack,那么我建议安装它,并配置记录器以执行您想要的操作 - 甚至可以在其他地方路由。
CocoaLumberjack在记录时为您提供很多的强大功能和可配置性。
答案 2 :(得分:0)
如果您的SDK使用NSLog
在控制台中打印详细信息,则可以使用宏重新定义NSLog
。
#define NSLog(FORMAT, ...) ShowLogInAlert(FORMAT);
void ShowLogInAlert(NSString *format, ...){
//show the log in the alert here.
va_list ap;
va_start (ap, format);
format = [format stringByAppendingString:@"\n"];
NSString *msg = [[NSString alloc] initWithFormat:[NSString stringWithFormat:@"%@",format] arguments:ap];
// NSLog(@"%@", msg);
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:msg message:@"" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
va_end (ap);
}