我是MacOS的新手。制作完.app
应用程序后,我将添加日志记录功能,但不知道应该使用哪个目录。我发现以下是保存日志文件的常见方法,但它们有何不同,哪一种最好?
- ~/Library/Logs
- /库/日志
- /private/var/log
简单回答:这取决于您的软件是什么以及它记录了什么。对于一个正在创建自己日志的.app来说,~/Library/Logs无疑是最好的地方。但是,如果你正在记录应用程序的调试/跟踪信息,请使用苹果的统一日志系统。
长话短说:第一个相关的区别是,所记录的事件是否与作为开发人员的您相关,还是与运行应用程序的实际用户相关。如果适用于您,请使用苹果的统一日志记录。
下一个相关的区别是日志是与整个系统相关,还是仅与运行软件的单个用户相关。您可能将macOS用作单用户操作系统,但它的组织方式使多个用户可以共享同一台计算机。所以问问自己:这个日志应该对计算机上的所有用户(或者可能只是管理员(可见,还是只对实际使用该软件的用户可见?如果每个用户都应该只看到自己的日志历史记录,那么它显然属于用户的主文件夹,所以~/Library/Logs是正确的位置。
一个相关的问题是,普通用户没有权限写入/Library/Logs和/var/log(又名/private/var/log(,因此以普通用户身份运行的应用程序不能登录到这些地方。
最后一个区别是您的软件是Mac版还是Unix版。macOS有两层,Unix层和在此之上构建的Mac特定层/Library/Logs是非用户特定日志的Mac风格的地方,/var/log是类似的Unix风格的地方。这样说吧:如果你的程序安装到/Applications中,你就是Mac世界的一部分,并且会使用/Library/Logs作为系统范围的日志。另一方面,如果您的程序安装到/usr/local或/opt中,那么您就是Unix世界的一部分,应该使用/var/log。
因此,总结一下:
- 用于面向开发人员的调试和跟踪信息的统一日志记录系统
- ~/Library/来自非系统软件的面向用户的信息日志
- /用于Mac ish系统范围事件日志记录的库/日志
- /用于Unix ish系统范围事件日志的var/log
BTW,统一的日志信息实际上存储在/var/log中。但不要以这种方式访问它——使用API。