Mac Os Xサンドボックスアプリケーションに、実行するすべてのアクションのログファイルを書き込んでもらいたいのですが、正しいパスは/Users/MyName/Library/Containers/com.me_developer.myAppID/Data/Library/Logs/だと思います。私はファイルに追加テキストを書き込む方法を知っていますが、私が探しているのは、システムログファイルが/ var / logに書き込まれるのと同様の方法で古いログファイルをアーカイブし、特定のサイズに達すると、名前が変更され、圧縮されます(bz2)。Mac Os Xまたはその下位レベルのUNIXがそのための組み込みソリューションを提供するのかどうか疑問に思うので、すべてのコードを手動で記述する必要はありません。ありがとう。
1 に答える
Mac OS X (および iOS) のシステム ログ機能と対話するための API であるaslを見てください。これは 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 ロギング ライブラリであるCocoa Lumberjackを必ず確認してください。