Ric*_*ell 31 iphone console logging objective-c ios
我的iOS应用程序如何从设备控制台日志中读取消息.我想以编程方式读取这些日志条目(如读取文件?),选择一些,然后通过电子邮件发送给支持.
我知道有一个iPhone应用程序可以让你查看日志.它的名字是Console.但是,我无法弄清楚他使用了哪些类或API.一个人建议使用ASL功能完成,但我不知道它们是什么或它们被记录在何处.
我也知道使用NSLog的几种替代方法,例如NSLogger和CocoaLumberJack,但我们目前尚未准备好实现这些.
非常感谢您的帮助!
Jul*_*rgé 28
此项目在Cocoanetics博客有样本代码来访问使用ASL公司(Apple系统登录器)API(的iOS系统日志手册页):
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);
Run Code Online (Sandbox Code Playgroud)
请注意,您需要轮询ASL以读取最新消息.在iPhone模拟器上运行时,上面的代码也会失败,但在实际设备上运行正常.
如果您不想与C ASL API对抗,请查看这个名为ASLogger的 Objective-C包装器.
从IOS 7开始,此方法将不再起作用.由于安全原因,Apple删除了对ASL的访问权限.
| 归档时间: |
|
| 查看次数: |
15644 次 |
| 最近记录: |