如何在目标C中编写类似system.log的日志文件?

fun*_*dor 1 cocoa objective-c

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

And*_*sen 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日志库.

  • 我会先看看Cocoa Lumberjack - 它很容易使用它看起来像调用NSLog但写入文件或asl (2认同)