我希望我的Mac Os X沙盒应用程序能够写出每个操作所需的日志文件,我认为正确的路径是/Users/MyName/Library/Containers/com.me_developer.myAppID/Data/Library/Logs/ 。我知道如何写一个文件附加文本,但我要找的是以类似于系统日志文件的方式存档的旧日志文件写入/ var / log,一旦达到一定的大小,他们重命名和压缩(bz2)。我想知道Mac Os X或它的低级UNIX是否提供了内置的解决方案,因此我不必手动编写所有代码。感谢。
答案 0 :(得分:5)
查看asl,这是用于与Mac OS X(和iOS)中的系统日志工具进行交互的API。它有点低级别,因为它是一个C API,但它应该做你想要的一切,并以苹果认可的,沙箱兼容的方式这样做。
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日志库。