2

我希望我的 Mac Os X 沙盒应用程序为其执行的每个操作编写一个日志文件,我认为正确的路径是 /Users/MyName/Library/Containers/com.me_developer.myAppID/Data/Library/Logs/。我知道如何在文件中写入附加文本,但我正在寻找的是以类似于系统日志文件的方式归档旧日志文件在 /var/log 中写入,一旦它们达到一定大小,它们被重命名并压缩(bz2)。我想知道 Mac Os X 或其较低级别的 UNIX 是否为此提供了内置解决方案,因此我不必手动编写所有代码。谢谢。

4

1 回答 1

5

看看asl,它是用于与 Mac OS X(和 iOS)中的系统日志工具交互的 API。它有点低级,因为它是一个 C API,但它应该做你想做的一切,并且以 Apple 认可的、与沙盒兼容的方式来做。

有许多用于 ASL 的第三方开源 Objective-C 包装器。以下是一些示例(我自己没有使用过这些示例):

https://github.com/AlanQuatermain/aqtoolkit/tree/master/ASLogger
https://github.com/billgarrison/SOLogger https://github.com/nloko/NLOSyslog

这里有几篇关于使用 ASL 的文章/教程:

http://boredzo.org/blog/archives/2008-01-20/why-asl
http://www.cocoanetics.com/2011/03/accessing-the-ios-system-log/

最后,一定要看看Cocoa Lumberjack,这是一个非常流行的 Cocoa 日志库。

于 2013-02-04T21:19:41.017 回答