在Xcode中观察NSLog消息

时间:2014-02-24 14:34:37

标签: ios xcode debugging nslog

我正在调试第三方SDK,它将许多有用的信息放入控制台。

我曾经在工具提示中显示一些消息(对于我们的测试人员),我从SDK委托中收到这些消息。

但是委托方法不包含很多细节,有时它会变得无助,否则控制台会包含更多有用的信息(特别是如果SDK的日志级别设置为DEBUG_ALL或类似的话)。

所以,我的问题 - 是否可以观察NSLog消息并在打印到控制台时以某种方式得到通知?当然我想将字符串消息作为参数?

我想在设备/模拟器屏幕上显示它,这样测试人员就不必运行XCode或查看设备的控制台。

3 个答案:

答案 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);

}