我的 iOS 应用程序如何从设备控制台日志中读取消息。我想以编程方式读取这些日志条目(例如读取文件?),选择一些日志条目,然后通过电子邮件将其发送给支持人员。
我知道有一款 iPhone 应用程序可以让您查看日志。它的名字是控制台。但是,我无法弄清楚他使用了哪些类或 API。有人建议这是使用 ASL 函数完成的,但我不知道这些函数是什么或它们的文档记录在哪里。
我还知道使用 NSLog 的几种替代方案,例如 NSLogger 和 CocoaLumberJack,但我们目前还没有准备好实现这些。
非常感谢您的帮助!
此条目 http://www.cocoanetics.com/2011/03/accessing-the-ios-system-log/Cocoanetics 博客中提供了使用 ASL(Apple System Logger)API 访问 iOS 上的系统日志的示例代码(man page https://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/asl.3.html):
aslmsg q, m;
int i;
const char *key, *val;
q = asl_new(ASL_TYPE_QUERY);
aslresponse r = asl_search(NULL, q);
while (NULL != (m = aslresponse_next(r)))
{
NSMutableDictionary *tmpDict = [NSMutableDictionary dictionary];
for (i = 0; (NULL != (key = asl_key(m, i))); i++)
{
NSString *keyString = [NSString stringWithUTF8String:(char *)key];
val = asl_get(m, key);
NSString *string = [NSString stringWithUTF8String:val];
[tmpDict setObject:string forKey:keyString];
}
NSLog(@"%@", tmpDict);
}
aslresponse_free(r);
请注意,您需要轮询 ASL 才能读取最新消息。上面的代码在 iPhone 模拟器上运行时也会失败,但在实际设备上运行得很好。
如果你不想对抗 C ASL API,可以看看这个 Objective-C 包装器,名为ASLogger https://github.com/AlanQuatermain/aqtoolkit/tree/3c962940928de3758e74cb3d230c37222bceae7f/ASLogger.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)