Objective-C记录日志最佳实践

14

我正在编写我的第一个在后台运行的Objective-C守护进程,所有操作都需要正确记录日志。

由于我对苹果设备相对陌生,因此不太清楚记录活动的最常见和/或最佳方式是什么?每个人是否只是将日志记录到自己特殊格式的文本文件中,还是使用某种系统调用?

2个回答

16
您应该查看苹果系统日志记录器(Apple System Logger)。 ASL将信息写入系统日志数据库(这使得从Console.app或您自己的应用程序中查询日志变得容易),并且还可以选择将信息写入一个或多个平面文件中。Peter Hosey的介绍是我所知道的最好的ASL介绍。ASL是一个C级别的API,但如果您愿意,它相对容易包装成Objective-C。我还建议您查看Google的Mac工具箱。它包含许多其他好东西,其中包括一个GTMLogger工具,它支持ASL。我已经放弃了自己编写的ASL包装器,转而使用GTMLogger

感谢提供 Google Toolbox for Mac 的链接。Google Code 上有一些非常不错的项目! - Jesper

1
另一个你可能想尝试的选择是https://github.com/CocoaLumberjack。Lumbejack非常灵活,可以让你记录到各种目标,配置日志级别等等。如果你熟悉log4j / log4net,它的使用类似。 它也报告称比ASL更快...我不知道它在功能或速度方面如何与GTMLogger相比,但文档似乎更易于理解。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接