【发布时间】:2014-10-20 19:37:38
【问题描述】:
我正在编写我的第一个在后台运行的 Objective-c 守护进程类型进程。它所做的一切都需要正确记录。
我对 Apple 的东西还很陌生,所以我不确定,记录活动的最常见和/或最佳方式是什么?每个人都只是简单地以自己的特殊格式登录到文本文件,还是使用某种系统调用?
【问题讨论】:
标签: objective-c logging
我正在编写我的第一个在后台运行的 Objective-c 守护进程类型进程。它所做的一切都需要正确记录。
我对 Apple 的东西还很陌生,所以我不确定,记录活动的最常见和/或最佳方式是什么?每个人都只是简单地以自己的特殊格式登录到文本文件,还是使用某种系统调用?
【问题讨论】:
标签: objective-c logging
您应该查看Apple System Logger。 ASL 写入系统日志数据库(便于从 Console.app 或您自己的应用程序中查询日志)以及一个或多个平面文件(如果您选择)。 Peter Hosey 对 ASL 的introduction 是我所知道的最好的。 ASL 是一个 C 级 API,但如果您愿意,它相对容易封装在 Objective-C 中。我建议也看看Google's Toolbox for Mac。在许多其他好东西中,它包含一个 GTMLogger 工具,其中包括 ASL 支持。我放弃了我自己开发的 ASL 包装器,转而使用 GTMLogger。
【讨论】:
您可能想尝试的另一种选择是https://github.com/CocoaLumberjack。 Lumberjack 非常灵活,可以让您登录到各种目的地、配置日志级别等。如果您熟悉这些,它非常类似于 log4j / log4net。
还有报道说它比 ASL 更快...我不知道它在功能或速度方面与 GTMLogger 相比如何,但文档似乎更平易近人。
【讨论】: